VK_EXT_fragment_shader_interlock tests
authorJeff Bolz <jbolz@nvidia.com>
Thu, 16 May 2019 04:27:53 +0000 (23:27 -0500)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Mon, 26 Aug 2019 17:10:05 +0000 (13:10 -0400)
Components: Vulkan
New Tests: dEQP-VK.fragment_shader_interlock.*
VK-GL-CTS issue: 1856

Change-Id: I0246519ac51fcb2eb30fa264b02eb1f30c763e24
(cherry picked from commit 36005ceedd19e39bd11972dd39c419521767dac6)

23 files changed:
AndroidGen.mk
android/cts/master/vk-master.txt
external/vulkancts/framework/vulkan/vkBasicTypes.inl
external/vulkancts/framework/vulkan/vkDeviceFeatures.inl
external/vulkancts/framework/vulkan/vkDeviceFeaturesForContextDecl.inl
external/vulkancts/framework/vulkan/vkDeviceFeaturesForContextDefs.inl
external/vulkancts/framework/vulkan/vkDeviceFeaturesForDefaultDeviceDefs.inl
external/vulkancts/framework/vulkan/vkGetStructureTypeImpl.inl
external/vulkancts/framework/vulkan/vkStrUtil.inl
external/vulkancts/framework/vulkan/vkStrUtilImpl.inl
external/vulkancts/framework/vulkan/vkStructTypes.inl
external/vulkancts/framework/vulkan/vkVulkan_c.inl
external/vulkancts/modules/vulkan/CMakeLists.txt
external/vulkancts/modules/vulkan/fragment_shader_interlock/CMakeLists.txt [new file with mode: 0644]
external/vulkancts/modules/vulkan/fragment_shader_interlock/vktFragmentShaderInterlockBasic.cpp [new file with mode: 0644]
external/vulkancts/modules/vulkan/fragment_shader_interlock/vktFragmentShaderInterlockBasic.hpp [new file with mode: 0644]
external/vulkancts/modules/vulkan/fragment_shader_interlock/vktFragmentShaderInterlockTests.cpp [new file with mode: 0644]
external/vulkancts/modules/vulkan/fragment_shader_interlock/vktFragmentShaderInterlockTests.hpp [new file with mode: 0644]
external/vulkancts/modules/vulkan/vktTestCase.cpp
external/vulkancts/modules/vulkan/vktTestPackage.cpp
external/vulkancts/mustpass/master/vk-default-no-waivers.txt
external/vulkancts/mustpass/master/vk-default.txt
external/vulkancts/scripts/src/vulkan_core.h

index d2dbb868820f6b63cca32084a1ff6b95f6bab69e..017a3ad201a618e63a200d1aaa21797b34558fc4 100644 (file)
@@ -144,6 +144,8 @@ LOCAL_SRC_FILES := \
        external/vulkancts/modules/vulkan/fragment_ops/vktFragmentOperationsScissorMultiViewportTests.cpp \
        external/vulkancts/modules/vulkan/fragment_ops/vktFragmentOperationsScissorTests.cpp \
        external/vulkancts/modules/vulkan/fragment_ops/vktFragmentOperationsTests.cpp \
+       external/vulkancts/modules/vulkan/fragment_shader_interlock/vktFragmentShaderInterlockBasic.cpp \
+       external/vulkancts/modules/vulkan/fragment_shader_interlock/vktFragmentShaderInterlockTests.cpp \
        external/vulkancts/modules/vulkan/geometry/vktGeometryBasicClass.cpp \
        external/vulkancts/modules/vulkan/geometry/vktGeometryBasicGeometryShaderTests.cpp \
        external/vulkancts/modules/vulkan/geometry/vktGeometryEmitGeometryShaderTests.cpp \
@@ -1107,6 +1109,7 @@ LOCAL_C_INCLUDES := \
        $(deqp_dir)/external/vulkancts/modules/vulkan/draw \
        $(deqp_dir)/external/vulkancts/modules/vulkan/dynamic_state \
        $(deqp_dir)/external/vulkancts/modules/vulkan/fragment_ops \
+       $(deqp_dir)/external/vulkancts/modules/vulkan/fragment_shader_interlock \
        $(deqp_dir)/external/vulkancts/modules/vulkan/geometry \
        $(deqp_dir)/external/vulkancts/modules/vulkan/image \
        $(deqp_dir)/external/vulkancts/modules/vulkan/imageless_framebuffer \
index 8890b615749f8c52fe7f594f559a7eb8c1da465d..d4e173d9673a9a371f697826774cb828622eb4b0 100644 (file)
@@ -462782,3 +462782,579 @@ dEQP-VK.imageless_framebuffer.depth_stencil
 dEQP-VK.imageless_framebuffer.color_resolve
 dEQP-VK.imageless_framebuffer.depth_stencil_resolve
 dEQP-VK.imageless_framebuffer.multisubpass
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.sample_shading.128x128
+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
index 2fa9839fccce0ac8a5a080221b7193120b33e106..ac26357b6faa753629666d531abcf141a2248165 100644 (file)
@@ -445,6 +445,7 @@ enum VkStructureType
        VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV                           = 1000250000,
        VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV                                      = 1000250001,
        VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV                                                      = 1000250002,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT                        = 1000251000,
        VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT                                       = 1000252000,
        VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR           = 1000253000,
        VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT                                                        = 1000255000,
@@ -2829,6 +2830,7 @@ VK_DEFINE_PLATFORM_TYPE(CAMetalLayer,                             void*);
 #define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 1
 #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
 #define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1
 #define VK_EXT_HEADLESS_SURFACE_SPEC_VERSION 0
 #define VK_EXT_HOST_QUERY_RESET_SPEC_VERSION 1
index b876a402f31b295779a184696dc3bd6e4094cc8b..bd3754675b5ad07f90c8fbce8cbf70127235c440 100644 (file)
@@ -34,6 +34,7 @@ namespace vk
 #define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address"
 #define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix"
 #define VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME "VK_NV_coverage_reduction_mode"
+#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock"
 #define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays"
 #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout"
 #define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset"
@@ -46,35 +47,36 @@ namespace vk
 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
 
 
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceProtectedMemoryFeatures>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0, 39); }
-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, 38); }
-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, 37); }
-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, 36); }
-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, 35); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFloat16Int8FeaturesKHR>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR, VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME, VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION, 34); }
-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, 33); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceImagelessFramebufferFeaturesKHR>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR, VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME, VK_KHR_IMAGELESS_FRAMEBUFFER_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<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, 30); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDescriptorIndexingFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT, VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION, 29); }
-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, 28); }
-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, 27); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDevice8BitStorageFeaturesKHR>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR, VK_KHR_8BIT_STORAGE_EXTENSION_NAME, VK_KHR_8BIT_STORAGE_SPEC_VERSION, 26); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderAtomicInt64FeaturesKHR>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR, VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME, VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION, 25); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION, 24); }
-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, 23); }
-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, 22); }
-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, 21); }
-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, 20); }
-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, 19); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceVulkanMemoryModelFeaturesKHR>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR, VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME, VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION, 18); }
-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, 17); }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceScalarBlockLayoutFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT, VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME, VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION, 16); }
-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, 15); }
-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, 14); }
-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, 13); }
-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, 12); }
-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, 11); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceProtectedMemoryFeatures>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0, 40); }
+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, 39); }
+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, 38); }
+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, 37); }
+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, 36); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFloat16Int8FeaturesKHR>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR, VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME, VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION, 35); }
+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, 34); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceImagelessFramebufferFeaturesKHR>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR, VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME, VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION, 33); }
+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, 32); }
+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, 31); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDescriptorIndexingFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT, VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION, 30); }
+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, 29); }
+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, 28); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDevice8BitStorageFeaturesKHR>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR, VK_KHR_8BIT_STORAGE_EXTENSION_NAME, VK_KHR_8BIT_STORAGE_SPEC_VERSION, 27); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderAtomicInt64FeaturesKHR>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR, VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME, VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION, 26); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION, 25); }
+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, 24); }
+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, 23); }
+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, 22); }
+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, 21); }
+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, 20); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceVulkanMemoryModelFeaturesKHR>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR, VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME, VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION, 19); }
+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, 18); }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceScalarBlockLayoutFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT, VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME, VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION, 17); }
+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, 16); }
+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, 15); }
+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, 14); }
+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, 13); }
+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, 12); }
+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, 11); }
 template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT, VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME, VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION, 10); }
 template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR, VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME, VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION, 9); }
 template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceHostQueryResetFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT, VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME, VK_EXT_HOST_QUERY_RESET_SPEC_VERSION, 8); }
@@ -118,6 +120,7 @@ static const FeatureStructMapItem featureStructCreatorMap[] =
        { createFeatureStructWrapper<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT>, VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceCooperativeMatrixFeaturesNV>, VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME, VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceCoverageReductionModeFeaturesNV>, VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME, VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT>, VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME, VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT>, VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME, VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR>, VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME, VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceHostQueryResetFeaturesEXT>, VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME, VK_EXT_HOST_QUERY_RESET_SPEC_VERSION },
index c945847a416aa0b4256e88d9ddbbb007198c6489..dcaf0df43407c5f9d7bc4815de2e4dc5a48aa14a 100644 (file)
@@ -30,6 +30,7 @@ const vk::VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV& getDedicat
 const vk::VkPhysicalDeviceBufferDeviceAddressFeaturesEXT&                              getBufferDeviceAddressFeatures                          (void) const;
 const vk::VkPhysicalDeviceCooperativeMatrixFeaturesNV&                                 getCooperativeMatrixFeatures                            (void) const;
 const vk::VkPhysicalDeviceCoverageReductionModeFeaturesNV&                             getCoverageReductionModeFeatures                        (void) const;
+const vk::VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT&                  getFragmentShaderInterlockFeatures                      (void) const;
 const vk::VkPhysicalDeviceYcbcrImageArraysFeaturesEXT&                                 getYcbcrImageArraysFeatures                                     (void) const;
 const vk::VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR&              getUniformBufferStandardLayoutFeatures          (void) const;
 const vk::VkPhysicalDeviceHostQueryResetFeaturesEXT&                                   getHostQueryResetFeatures                                       (void) const;
index 91c62439ae694859f4abadf5ee510cc3e38ff235..0142eb525c244850ea9cbe8847a226babad0e15a 100644 (file)
@@ -30,6 +30,7 @@ const vk::VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV& Context::g
 const vk::VkPhysicalDeviceBufferDeviceAddressFeaturesEXT&                              Context::getBufferDeviceAddressFeatures                                 (void) const { return m_device->getBufferDeviceAddressFeatures();                               }
 const vk::VkPhysicalDeviceCooperativeMatrixFeaturesNV&                                 Context::getCooperativeMatrixFeatures                                   (void) const { return m_device->getCooperativeMatrixFeatures();                                 }
 const vk::VkPhysicalDeviceCoverageReductionModeFeaturesNV&                             Context::getCoverageReductionModeFeatures                               (void) const { return m_device->getCoverageReductionModeFeatures();                             }
+const vk::VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT&                  Context::getFragmentShaderInterlockFeatures                             (void) const { return m_device->getFragmentShaderInterlockFeatures();                   }
 const vk::VkPhysicalDeviceYcbcrImageArraysFeaturesEXT&                                 Context::getYcbcrImageArraysFeatures                                    (void) const { return m_device->getYcbcrImageArraysFeatures();                                  }
 const vk::VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR&              Context::getUniformBufferStandardLayoutFeatures                 (void) const { return m_device->getUniformBufferStandardLayoutFeatures();               }
 const vk::VkPhysicalDeviceHostQueryResetFeaturesEXT&                                   Context::getHostQueryResetFeatures                                              (void) const { return m_device->getHostQueryResetFeatures();                                    }
index a51e99a29b53be0e346ac49ef783e0e66fb84a8d..2941aefa11fa1b79ce1fbe3eb173aaca208c6d52 100644 (file)
@@ -30,6 +30,7 @@ const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV&     getDedicatedAl
 const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT&                          getBufferDeviceAddressFeatures                          (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT>();                                }
 const VkPhysicalDeviceCooperativeMatrixFeaturesNV&                                     getCooperativeMatrixFeatures                            (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceCooperativeMatrixFeaturesNV>();                                   }
 const VkPhysicalDeviceCoverageReductionModeFeaturesNV&                         getCoverageReductionModeFeatures                        (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceCoverageReductionModeFeaturesNV>();                               }
+const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT&                      getFragmentShaderInterlockFeatures                      (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT>();                    }
 const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT&                                     getYcbcrImageArraysFeatures                                     (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT>();                                   }
 const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR&          getUniformBufferStandardLayoutFeatures          (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR>();                }
 const VkPhysicalDeviceHostQueryResetFeaturesEXT&                                       getHostQueryResetFeatures                                       (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceHostQueryResetFeaturesEXT>();                                             }
index e45652163e64aa5a37ac0db1909dd46000e0cf26..d4e582dc5ee469dee5f8622d558394150e2f8107 100644 (file)
@@ -1541,6 +1541,11 @@ template<> VkStructureType getStructureType<VkFramebufferMixedSamplesCombination
        return VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV;
 }
 
+template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT> (void)
+{
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT;
+}
+
 template<> VkStructureType getStructureType<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT> (void)
 {
        return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT;
index 9f14065a0fa66acabe0115bfae83eff79759a6ef..286a86709b3d093253bc5e05d9c2a571467a871f 100644 (file)
@@ -770,6 +770,7 @@ std::ostream&       operator<<      (std::ostream& s, const VkPhysicalDeviceCooperativeMatr
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceCoverageReductionModeFeaturesNV& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPipelineCoverageReductionStateCreateInfoNV& value);
 std::ostream&  operator<<      (std::ostream& s, const VkFramebufferMixedSamplesCombinationNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkHeadlessSurfaceCreateInfoEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceHostQueryResetFeaturesEXT& value);
index c2d92c1946af28c341df9d60a624ce02f273ff08..1001eafcdb8a1f4e789d56413830b2e93b69bb19 100644 (file)
@@ -457,6 +457,7 @@ const char* getStructureTypeName (VkStructureType value)
                case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV:                             return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV";
                case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV:                                return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV";
                case VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV:                                                return "VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT:                  return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT";
                case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT:                                 return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT";
                case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR:             return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR";
                case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:                                                  return "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT";
@@ -8202,6 +8203,18 @@ std::ostream& operator<< (std::ostream& s, const VkFramebufferMixedSamplesCombin
        return s;
 }
 
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT& value)
+{
+       s << "VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tfragmentShaderSampleInterlock = " << value.fragmentShaderSampleInterlock << '\n';
+       s << "\tfragmentShaderPixelInterlock = " << value.fragmentShaderPixelInterlock << '\n';
+       s << "\tfragmentShaderShadingRateInterlock = " << value.fragmentShaderShadingRateInterlock << '\n';
+       s << '}';
+       return s;
+}
+
 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT& value)
 {
        s << "VkPhysicalDeviceYcbcrImageArraysFeaturesEXT = {\n";
index ce5f9c1f7056ad1e6b92f595b50f57790967fe27..c7ed1f64bcbaa130075efb8d6a22eebbfface436 100644 (file)
@@ -3845,6 +3845,15 @@ struct VkFramebufferMixedSamplesCombinationNV
        VkSampleCountFlags                      colorSamples;
 };
 
+struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT
+{
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                fragmentShaderSampleInterlock;
+       VkBool32                fragmentShaderPixelInterlock;
+       VkBool32                fragmentShaderShadingRateInterlock;
+};
+
 struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT
 {
        VkStructureType sType;
index 194907a5c795c5719e38f7944e38fb1d8f3fe1e4..ce206916de1e36e5d687f2a285fc3ba053c1c10a 100644 (file)
@@ -495,6 +495,7 @@ typedef enum VkStructureType {
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000,
     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001,
     VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR = 1000253000,
     VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000,
@@ -9384,6 +9385,18 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSupportedFramebufferMixedSampl
 #endif
 
 
+#define VK_EXT_fragment_shader_interlock 1
+#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION 1
+#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock"
+typedef struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           fragmentShaderSampleInterlock;
+    VkBool32           fragmentShaderPixelInterlock;
+    VkBool32           fragmentShaderShadingRateInterlock;
+} VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT;
+
+
 #define VK_EXT_ycbcr_image_arrays 1
 #define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1
 #define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays"
index 56f8bece01462319a7cc7a35912f78708a4443cf..96902c8a27cc726d3efbc16f7b895ddf79b80c6c 100644 (file)
@@ -37,6 +37,7 @@ add_subdirectory(util)
 add_subdirectory(amber)
 add_subdirectory(descriptor_indexing)
 add_subdirectory(imageless_framebuffer)
+add_subdirectory(fragment_shader_interlock)
 
 include_directories(
        api
@@ -76,6 +77,7 @@ include_directories(
        amber
        descriptor_indexing
        imageless_framebuffer
+       fragment_shader_interlock
        )
 
 set(DEQP_VK_SRCS
@@ -134,6 +136,7 @@ set(DEQP_VK_LIBS
        deqp-vk-transform-feedback
        deqp-vk-descriptor-indexing
        deqp-vk-imageless-framebuffer
+       deqp-vk-fragment-shader-interlock
        )
 
 if (DE_COMPILER_IS_MSC AND (DE_PTR_SIZE EQUAL 4))
diff --git a/external/vulkancts/modules/vulkan/fragment_shader_interlock/CMakeLists.txt b/external/vulkancts/modules/vulkan/fragment_shader_interlock/CMakeLists.txt
new file mode 100644 (file)
index 0000000..973cdd5
--- /dev/null
@@ -0,0 +1,16 @@
+include_directories(..)
+
+set(DEQP_VK_FRAGMENT_SHADER_INTERLOCK_SRCS
+       vktFragmentShaderInterlockTests.cpp
+       vktFragmentShaderInterlockTests.hpp
+       vktFragmentShaderInterlockBasic.cpp
+       vktFragmentShaderInterlockBasic.hpp
+)
+
+set(DEQP_VK_FRAGMENT_SHADER_INTERLOCK_LIBS
+       tcutil
+       vkutil
+)
+
+add_library(deqp-vk-fragment-shader-interlock STATIC ${DEQP_VK_FRAGMENT_SHADER_INTERLOCK_SRCS})
+target_link_libraries(deqp-vk-fragment-shader-interlock ${DEQP_VK_FRAGMENT_SHADER_INTERLOCK_LIBS})
diff --git a/external/vulkancts/modules/vulkan/fragment_shader_interlock/vktFragmentShaderInterlockBasic.cpp b/external/vulkancts/modules/vulkan/fragment_shader_interlock/vktFragmentShaderInterlockBasic.cpp
new file mode 100644 (file)
index 0000000..9f530af
--- /dev/null
@@ -0,0 +1,927 @@
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2017-2019 The Khronos Group Inc.
+ * Copyright (c) 2018-2019 NVIDIA 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 Tests for VK_EXT_fragment_shader_interlock.
+ * These tests render a set of overlapping full-screen quads that use image
+ * or buffer reads and writes to accumulate values into a result image/buffer.
+ * They use fragment shader interlock to avoid race conditions on the read/write
+ * and validate that the final result includes all the writes.
+ * Each fragment shader invocation computes a coordinate, and does a read/modify/write
+ * into the image or buffer, inside the interlock. The value in memory accumulates a bitmask
+ * indicating which primitives or samples have already run through the interlock. e.g.
+ * for single sample, PIXEL_UNORDERED mode, there is one bit in the bitmask for each primitive
+ * and each primitive ORs in its own bit. For PIXEL_ORDERED mode, each invocation also tests
+ * that all the previous primitives (less significant bits) are also set, else it clobbers the
+ * value. Sample and shading_rate interlock are variants of this where there is one value per
+ * sample or per coarse fragment location, respectively. When there are multiple samples per
+ * fragment, we merge in the whole sample mask. But within a pixel, we don't try to distinguish
+ * primitive order between samples on the internal diagonal of the quad (triangle strip).
+ *//*--------------------------------------------------------------------*/
+
+#include "vktFragmentShaderInterlockBasic.hpp"
+
+#include "vkBufferWithMemory.hpp"
+#include "vkImageWithMemory.hpp"
+#include "vkQueryUtil.hpp"
+#include "vkBuilderUtil.hpp"
+#include "vkCmdUtil.hpp"
+#include "vkTypeUtil.hpp"
+#include "vkObjUtil.hpp"
+
+#include "vktTestGroupUtil.hpp"
+#include "vktTestCase.hpp"
+
+#include "deDefs.h"
+#include "deMath.h"
+#include "deRandom.h"
+#include "deSharedPtr.hpp"
+#include "deString.h"
+
+#include "tcuTestCase.hpp"
+#include "tcuTestLog.hpp"
+
+#include <string>
+#include <sstream>
+
+namespace vkt
+{
+namespace FragmentShaderInterlock
+{
+namespace
+{
+using namespace vk;
+using namespace std;
+
+typedef enum
+{
+       RES_SSBO = 0,
+       RES_IMAGE,
+} Resource;
+
+typedef enum
+{
+       INT_PIXEL_ORDERED = 0,
+       INT_PIXEL_UNORDERED,
+       INT_SAMPLE_ORDERED,
+       INT_SAMPLE_UNORDERED,
+       INT_SHADING_RATE_ORDERED,
+       INT_SHADING_RATE_UNORDERED,
+} Interlock;
+
+struct CaseDef
+{
+       deUint32 dim;
+       Resource resType;
+       Interlock interlock;
+       VkSampleCountFlagBits samples;
+       bool killOdd;
+       bool sampleShading;
+
+       bool isSampleInterlock() const
+       {
+               return sampleShading || interlock == INT_SAMPLE_ORDERED || interlock == INT_SAMPLE_UNORDERED;
+       }
+       bool isOrdered() const
+       {
+               return interlock == INT_PIXEL_ORDERED || interlock == INT_SAMPLE_ORDERED || interlock == INT_SHADING_RATE_ORDERED;
+       }
+};
+
+class FSITestInstance : public TestInstance
+{
+public:
+                                               FSITestInstance         (Context& context, const CaseDef& data);
+                                               ~FSITestInstance        (void);
+       tcu::TestStatus         iterate                         (void);
+
+private:
+       CaseDef                         m_data;
+};
+
+FSITestInstance::FSITestInstance (Context& context, const CaseDef& data)
+       : vkt::TestInstance             (context)
+       , m_data                                (data)
+{
+}
+
+FSITestInstance::~FSITestInstance (void)
+{
+}
+
+class FSITestCase : public TestCase
+{
+       public:
+                                                               FSITestCase             (tcu::TestContext& context, const char* name, const char* desc, const CaseDef data);
+                                                               ~FSITestCase    (void);
+       virtual void                            initPrograms    (SourceCollections& programCollection) const;
+       virtual TestInstance*           createInstance  (Context& context) const;
+       virtual void                            checkSupport    (Context& context) const;
+
+private:
+       CaseDef                                         m_data;
+};
+
+FSITestCase::FSITestCase (tcu::TestContext& context, const char* name, const char* desc, const CaseDef data)
+       : vkt::TestCase (context, name, desc)
+       , m_data                (data)
+{
+}
+
+FSITestCase::~FSITestCase      (void)
+{
+}
+
+void FSITestCase::checkSupport(Context& context) const
+{
+       context.requireDeviceExtension("VK_EXT_fragment_shader_interlock");
+
+       if ((m_data.interlock == INT_SAMPLE_ORDERED || m_data.interlock == INT_SAMPLE_UNORDERED) &&
+               !context.getFragmentShaderInterlockFeatures().fragmentShaderSampleInterlock)
+       {
+               TCU_THROW(NotSupportedError, "Fragment shader sample interlock not supported");
+       }
+
+       if ((m_data.interlock == INT_PIXEL_ORDERED || m_data.interlock == INT_PIXEL_UNORDERED) &&
+               !context.getFragmentShaderInterlockFeatures().fragmentShaderPixelInterlock)
+       {
+               TCU_THROW(NotSupportedError, "Fragment shader pixel interlock not supported");
+       }
+
+       if ((m_data.interlock == INT_SHADING_RATE_ORDERED || m_data.interlock == INT_SHADING_RATE_UNORDERED) &&
+               !context.getFragmentShaderInterlockFeatures().fragmentShaderShadingRateInterlock)
+       {
+               TCU_THROW(NotSupportedError, "Fragment shader shading rate interlock not supported");
+       }
+
+       if ((m_data.interlock == INT_SHADING_RATE_ORDERED || m_data.interlock == INT_SHADING_RATE_UNORDERED) &&
+               !context.getShadingRateImageFeatures().shadingRateImage)
+       {
+               TCU_THROW(NotSupportedError, "Shading rate image not supported");
+       }
+}
+
+static int bitsPerQuad(const CaseDef &c)
+{
+       deUint32 bpq = c.samples;
+
+       if (c.isSampleInterlock())
+               bpq = 1;
+       else if (c.interlock == INT_SHADING_RATE_ORDERED || c.interlock == INT_SHADING_RATE_UNORDERED)
+               bpq *= 4;
+
+       return bpq;
+}
+
+void FSITestCase::initPrograms (SourceCollections& programCollection) const
+{
+       std::stringstream vss;
+
+       vss <<
+               "#version 450 core\n"
+               "layout(location = 0) out int primID;\n"
+               "void main()\n"
+               "{\n"
+               "  primID = gl_InstanceIndex;\n"
+               // full-viewport quad
+               "  gl_Position = vec4( 2.0*float(gl_VertexIndex&2) - 1.0, 4.0*(gl_VertexIndex&1)-1.0, 1.0 - 2.0 * float(gl_VertexIndex&1), 1);\n"
+               "}\n";
+
+       programCollection.glslSources.add("vert") << glu::VertexSource(vss.str());
+
+       std::stringstream fss;
+
+       fss <<
+               "#version 450 core\n"
+               "#extension GL_ARB_fragment_shader_interlock : enable\n"
+               "#extension GL_NV_shading_rate_image : enable\n"
+               "layout(r32ui, set = 0, binding = 0) coherent uniform uimage2D image0;\n"
+               "layout(std430, set = 0, binding = 1) coherent buffer B1 { uint x[]; } buf1;\n"
+               "layout(location = 0) flat in int primID;\n";
+
+       switch (m_data.interlock)
+       {
+               default:                                                        DE_ASSERT(0);                                                                                           // fallthrough
+               case INT_PIXEL_ORDERED:                         fss << "layout(pixel_interlock_ordered) in;\n";                         break;
+               case INT_PIXEL_UNORDERED:                       fss << "layout(pixel_interlock_unordered) in;\n";                       break;
+               case INT_SAMPLE_ORDERED:                        fss << "layout(sample_interlock_ordered) in;\n";                        break;
+               case INT_SAMPLE_UNORDERED:                      fss << "layout(sample_interlock_unordered) in;\n";                      break;
+               case INT_SHADING_RATE_ORDERED:          fss << "layout(shading_rate_interlock_ordered) in;\n";          break;
+               case INT_SHADING_RATE_UNORDERED:        fss << "layout(shading_rate_interlock_unordered) in;\n";        break;
+       }
+
+       // Each fragment shader invocation computes a coordinate, and does a read/modify/write
+       // into the image or buffer, inside the interlock. The value in memory accumulates a bitmask
+       // indicating which primitives or samples have already run through the interlock. e.g.
+       // for single sample, PIXEL_UNORDERED mode, there is one bit in the bitmask for each primitive
+       // and each primitive ORs in its own bit. For PIXEL_ORDERED mode, each invocation also tests
+       // that all the previous primitives (less significant bits) are also set, else it clobbers the
+       // value. Sample and shading_rate interlock are variants of this where there is one value per
+       // sample or per coarse fragment location, respectively. When there are multiple samples per
+       // fragment, we merge in the whole sample mask. But within a pixel, we don't try to distinguish
+       // primitive order between samples on the internal diagonal of the quad (triangle strip).
+
+       fss <<
+               "void main()\n"
+               "{\n"
+               "  ivec2 coordxy = ivec2(gl_FragCoord.xy);\n"
+               "  uint stride = " << m_data.dim << ";\n"
+               "  uint bitsPerQuad = " << bitsPerQuad(m_data) << ";\n";
+
+       // Compute the coordinate
+       if (m_data.isSampleInterlock())
+       {
+               // Spread samples out in the x dimension
+               fss << "  coordxy.x = coordxy.x * " << m_data.samples << " + gl_SampleID;\n";
+               fss << "  stride *= " << m_data.samples << ";\n";
+       }
+       else if (m_data.interlock == INT_SHADING_RATE_ORDERED || m_data.interlock == INT_SHADING_RATE_UNORDERED)
+       {
+               // shading rate is 2x2. Divide xy by 2
+               fss << "  coordxy /= 2;\n";
+               fss << "  stride /= 2;\n";
+       }
+
+       if (m_data.isSampleInterlock())
+       {
+               // sample interlock runs per-sample, and stores one bit per sample
+               fss << "  uint mask = 1 << primID;\n";
+               fss << "  uint previousMask = (1 << primID)-1;\n";
+       }
+       else
+       {
+               // pixel and shading_rate interlock run per-fragment, and store the sample mask
+               fss << "  uint mask = gl_SampleMaskIn[0] << (primID * bitsPerQuad);\n";
+               fss << "  uint previousMask = (1 << (primID * bitsPerQuad))-1;\n";
+       }
+
+       // Exercise discard before and during the interlock
+       if (m_data.killOdd)
+               fss << "  if (coordxy.y < " << m_data.dim / 4 << " && (coordxy.x & 1) != 0) discard;\n";
+
+       fss << "  beginInvocationInterlockARB();\n";
+
+       if (m_data.killOdd)
+               fss << "  if ((coordxy.x & 1) != 0) discard;\n";
+
+       // Read the current value from the image or buffer
+       if (m_data.resType == RES_IMAGE)
+               fss << "  uint temp = imageLoad(image0, coordxy).x;\n";
+       else
+       {
+               fss << "  uint coord = coordxy.y * stride + coordxy.x;\n";
+               fss << "  uint temp = buf1.x[coord];\n";
+       }
+
+       // Update the value. For "ordered" modes, check that all the previous primitives'
+       // bits are already set
+       if (m_data.isOrdered())
+               fss << "  if ((temp & previousMask) == previousMask) temp |= mask; else temp = 0;\n";
+       else
+               fss << "  temp |= mask;\n";
+
+       // Store out the new value
+       if (m_data.resType == RES_IMAGE)
+               fss << "  imageStore(image0, coordxy, uvec4(temp, 0, 0, 0));\n";
+       else
+               fss << "  buf1.x[coord] = temp;\n";
+
+       fss << "  endInvocationInterlockARB();\n";
+
+       if (m_data.killOdd)
+               fss << "  discard;\n";
+
+       fss << "}\n";
+
+       programCollection.glslSources.add("frag") << glu::FragmentSource(fss.str());
+}
+
+TestInstance* FSITestCase::createInstance (Context& context) const
+{
+       return new FSITestInstance(context, m_data);
+}
+
+VkBufferCreateInfo makeBufferCreateInfo (const VkDeviceSize                    bufferSize,
+                                                                                const VkBufferUsageFlags       usage,
+                                                                                const VkBufferCreateFlags  flags)
+{
+       const VkBufferCreateInfo bufferCreateInfo =
+       {
+               VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,   // VkStructureType              sType;
+               DE_NULL,                                                                // const void*                  pNext;
+               flags,                                                                  // VkBufferCreateFlags  flags;
+               bufferSize,                                                             // VkDeviceSize                 size;
+               usage,                                                                  // VkBufferUsageFlags   usage;
+               VK_SHARING_MODE_EXCLUSIVE,                              // VkSharingMode                sharingMode;
+               0u,                                                                             // deUint32                             queueFamilyIndexCount;
+               DE_NULL,                                                                // const deUint32*              pQueueFamilyIndices;
+       };
+       return bufferCreateInfo;
+}
+
+VkBufferImageCopy makeBufferImageCopy (const VkExtent3D                                        extent,
+                                                                          const VkImageSubresourceLayers       subresourceLayers)
+{
+       const VkBufferImageCopy copyParams =
+       {
+               0ull,                                                                           //      VkDeviceSize                            bufferOffset;
+               0u,                                                                                     //      deUint32                                        bufferRowLength;
+               0u,                                                                                     //      deUint32                                        bufferImageHeight;
+               subresourceLayers,                                                      //      VkImageSubresourceLayers        imageSubresource;
+               makeOffset3D(0, 0, 0),                                          //      VkOffset3D                                      imageOffset;
+               extent,                                                                         //      VkExtent3D                                      imageExtent;
+       };
+
+       return copyParams;
+}
+
+tcu::TestStatus FSITestInstance::iterate (void)
+{
+       const DeviceInterface&  vk                                              = m_context.getDeviceInterface();
+       const VkDevice                  device                                  = m_context.getDevice();
+       Allocator&                              allocator                               = m_context.getDefaultAllocator();
+       VkFlags                                 allShaderStages                 = VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT;
+       VkFlags                                 allPipelineStages               = VK_PIPELINE_STAGE_VERTEX_SHADER_BIT | VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT;
+
+       VkPhysicalDeviceProperties2 properties;
+       deMemset(&properties, 0, sizeof(properties));
+       properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+
+       m_context.getInstanceInterface().getPhysicalDeviceProperties2(m_context.getPhysicalDevice(), &properties);
+
+       VkPipelineBindPoint bindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS;
+
+       Move<vk::VkDescriptorSetLayout> descriptorSetLayout;
+       Move<vk::VkDescriptorPool>              descriptorPool;
+       Move<vk::VkDescriptorSet>               descriptorSet;
+
+       VkDescriptorPoolCreateFlags poolCreateFlags = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT;
+       VkDescriptorSetLayoutCreateFlags layoutCreateFlags = 0;
+
+       const VkDescriptorSetLayoutBinding bindings[2] =
+       {
+               {
+                       0u,                                                                             // binding
+                       VK_DESCRIPTOR_TYPE_STORAGE_IMAGE,               // descriptorType
+                       1u,                                                                             // descriptorCount
+                       allShaderStages,                                                // stageFlags
+                       DE_NULL,                                                                // pImmutableSamplers
+               },
+               {
+                       1u,                                                                             // binding
+                       VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,              // descriptorType
+                       1u,                                                                             // descriptorCount
+                       allShaderStages,                                                // stageFlags
+                       DE_NULL,                                                                // pImmutableSamplers
+               },
+       };
+
+       // Create a layout and allocate a descriptor set for it.
+       const VkDescriptorSetLayoutCreateInfo setLayoutCreateInfo =
+       {
+               vk::VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,        // sType
+               DE_NULL,                                                                                                        // pNext
+               layoutCreateFlags,                                                                                      // flags
+               2u,                                                                                                                     // bindingCount
+               &bindings[0]                                                                                            // pBindings
+       };
+
+       descriptorSetLayout = vk::createDescriptorSetLayout(vk, device, &setLayoutCreateInfo);
+
+       vk::DescriptorPoolBuilder poolBuilder;
+       poolBuilder.addType(bindings[0].descriptorType, 1);
+       poolBuilder.addType(bindings[1].descriptorType, 1);
+
+       descriptorPool = poolBuilder.build(vk, device, poolCreateFlags, 1u);
+       descriptorSet = makeDescriptorSet(vk, device, *descriptorPool, *descriptorSetLayout);
+
+       // one uint per sample (max of 4 samples)
+       VkDeviceSize bufferSize = m_data.dim*m_data.dim*sizeof(deUint32)*4;
+
+       de::MovePtr<BufferWithMemory> buffer;
+       buffer = de::MovePtr<BufferWithMemory>(new BufferWithMemory(
+               vk, device, allocator, makeBufferCreateInfo(bufferSize, VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, 0), MemoryRequirement::Any));
+
+       flushAlloc(vk, device, buffer->getAllocation());
+
+       const VkQueue                                   queue                                   = m_context.getUniversalQueue();
+       Move<VkCommandPool>                             cmdPool                                 = createCommandPool(vk, device, 0, m_context.getUniversalQueueFamilyIndex());
+       Move<VkCommandBuffer>                   cmdBuffer                               = allocateCommandBuffer(vk, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY);
+
+       beginCommandBuffer(vk, *cmdBuffer, 0u);
+
+       const VkPipelineLayoutCreateInfo pipelineLayoutCreateInfo =
+       {
+               VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,                          // sType
+               DE_NULL,                                                                                                        // pNext
+               (VkPipelineLayoutCreateFlags)0,
+               1,                                                                                                                      // setLayoutCount
+               &descriptorSetLayout.get(),                                                                     // pSetLayouts
+               0u,                                                                                                                     // pushConstantRangeCount
+               DE_NULL,                                                                                                        // pPushConstantRanges
+       };
+
+       Move<VkPipelineLayout> pipelineLayout = createPipelineLayout(vk, device, &pipelineLayoutCreateInfo, NULL);
+
+       de::MovePtr<BufferWithMemory> copyBuffer;
+       copyBuffer = de::MovePtr<BufferWithMemory>(new BufferWithMemory(
+               vk, device, allocator, makeBufferCreateInfo(bufferSize, VK_BUFFER_USAGE_TRANSFER_DST_BIT, 0), MemoryRequirement::HostVisible | MemoryRequirement::Cached));
+
+       const VkImageCreateInfo                 imageCreateInfo                 =
+       {
+               VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,    // VkStructureType                      sType;
+               DE_NULL,                                                                // const void*                          pNext;
+               (VkImageCreateFlags)0u,                                 // VkImageCreateFlags           flags;
+               VK_IMAGE_TYPE_2D,                                               // VkImageType                          imageType;
+               VK_FORMAT_R32_UINT,                                             // VkFormat                                     format;
+               {
+                       m_data.dim * m_data.samples,            // deUint32     width;
+                       m_data.dim,                                                     // deUint32     height;
+                       1u                                                                      // deUint32     depth;
+               },                                                                              // VkExtent3D                           extent;
+               1u,                                                                             // deUint32                                     mipLevels;
+               1u,                                                                             // deUint32                                     arrayLayers;
+               VK_SAMPLE_COUNT_1_BIT,                                  // VkSampleCountFlagBits        samples;
+               VK_IMAGE_TILING_OPTIMAL,                                // VkImageTiling                        tiling;
+               VK_IMAGE_USAGE_STORAGE_BIT
+               | VK_IMAGE_USAGE_TRANSFER_SRC_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;
+       };
+
+       VkImageViewCreateInfo           imageViewCreateInfo             =
+       {
+               VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,       // VkStructureType                      sType;
+               DE_NULL,                                                                        // const void*                          pNext;
+               (VkImageViewCreateFlags)0u,                                     // VkImageViewCreateFlags       flags;
+               DE_NULL,                                                                        // VkImage                                      image;
+               VK_IMAGE_VIEW_TYPE_2D,                                          // VkImageViewType                      viewType;
+               VK_FORMAT_R32_UINT,                                                     // VkFormat                                     format;
+               {
+                       VK_COMPONENT_SWIZZLE_R,                                 // VkComponentSwizzle   r;
+                       VK_COMPONENT_SWIZZLE_G,                                 // VkComponentSwizzle   g;
+                       VK_COMPONENT_SWIZZLE_B,                                 // VkComponentSwizzle   b;
+                       VK_COMPONENT_SWIZZLE_A                                  // VkComponentSwizzle   a;
+               },                                                                                      // VkComponentMapping            components;
+               {
+                       VK_IMAGE_ASPECT_COLOR_BIT,                              // VkImageAspectFlags   aspectMask;
+                       0u,                                                                             // deUint32                             baseMipLevel;
+                       1u,                                                                             // deUint32                             levelCount;
+                       0u,                                                                             // deUint32                             baseArrayLayer;
+                       1u                                                                              // deUint32                             layerCount;
+               }                                                                                       // VkImageSubresourceRange      subresourceRange;
+       };
+
+       de::MovePtr<ImageWithMemory> image;
+       Move<VkImageView> imageView;
+
+       image = de::MovePtr<ImageWithMemory>(new ImageWithMemory(
+               vk, device, allocator, imageCreateInfo, MemoryRequirement::Any));
+       imageViewCreateInfo.image = **image;
+       imageView = createImageView(vk, device, &imageViewCreateInfo, NULL);
+
+       VkDescriptorImageInfo imageInfo = makeDescriptorImageInfo(DE_NULL, *imageView, VK_IMAGE_LAYOUT_GENERAL);
+       VkDescriptorBufferInfo bufferInfo = makeDescriptorBufferInfo(**buffer, 0, bufferSize);
+
+       VkWriteDescriptorSet w =
+       {
+               VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,                                                 // sType
+               DE_NULL,                                                                                                                // pNext
+               *descriptorSet,                                                                                                 // dstSet
+               (deUint32)0,                                                                                                    // dstBinding
+               0,                                                                                                                              // dstArrayElement
+               1u,                                                                                                                             // descriptorCount
+               bindings[0].descriptorType,                                                                             // descriptorType
+               &imageInfo,                                                                                                             // pImageInfo
+               &bufferInfo,                                                                                                    // pBufferInfo
+               DE_NULL,                                                                                                                // pTexelBufferView
+       };
+       vk.updateDescriptorSets(device, 1, &w, 0, NULL);
+
+       w.dstBinding = 1;
+       w.descriptorType = bindings[1].descriptorType;
+       vk.updateDescriptorSets(device, 1, &w, 0, NULL);
+
+       vk.cmdBindDescriptorSets(*cmdBuffer, bindPoint, *pipelineLayout, 0, 1, &descriptorSet.get(), 0, DE_NULL);
+
+       VkBool32 shadingRateImageEnable = m_data.interlock == INT_SHADING_RATE_ORDERED ||
+                                                                         m_data.interlock == INT_SHADING_RATE_UNORDERED ? VK_TRUE : VK_FALSE;
+
+       Move<VkPipeline> pipeline;
+       Move<VkRenderPass> renderPass;
+       Move<VkFramebuffer> framebuffer;
+
+       {
+               const vk::VkSubpassDescription          subpassDesc                     =
+               {
+                       (vk::VkSubpassDescriptionFlags)0,
+                       vk::VK_PIPELINE_BIND_POINT_GRAPHICS,                                    // pipelineBindPoint
+                       0u,                                                                                                             // inputCount
+                       DE_NULL,                                                                                                // pInputAttachments
+                       0u,                                                                                                             // colorCount
+                       DE_NULL,                                                                                                // pColorAttachments
+                       DE_NULL,                                                                                                // pResolveAttachments
+                       DE_NULL,                                                                                                // depthStencilAttachment
+                       0u,                                                                                                             // preserveCount
+                       DE_NULL,                                                                                                // pPreserveAttachments
+               };
+               const vk::VkRenderPassCreateInfo        renderPassParams        =
+               {
+                       vk::VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,                  // sType
+                       DE_NULL,                                                                                                // pNext
+                       (vk::VkRenderPassCreateFlags)0,
+                       0u,                                                                                                             // attachmentCount
+                       DE_NULL,                                                                                                // pAttachments
+                       1u,                                                                                                             // subpassCount
+                       &subpassDesc,                                                                                   // pSubpasses
+                       0u,                                                                                                             // dependencyCount
+                       DE_NULL,                                                                                                // pDependencies
+               };
+
+               renderPass = createRenderPass(vk, device, &renderPassParams);
+
+               const vk::VkFramebufferCreateInfo       framebufferParams       =
+               {
+                       vk::VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,  // sType
+                       DE_NULL,                                                                                // pNext
+                       (vk::VkFramebufferCreateFlags)0,
+                       *renderPass,                                                                    // renderPass
+                       0u,                                                                                             // attachmentCount
+                       DE_NULL,                                                                                // pAttachments
+                       m_data.dim,                                                                             // width
+                       m_data.dim,                                                                             // height
+                       1u,                                                                                             // layers
+               };
+
+               framebuffer = createFramebuffer(vk, device, &framebufferParams);
+
+               const VkPipelineVertexInputStateCreateInfo              vertexInputStateCreateInfo              =
+               {
+                       VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,      // VkStructureType                                                      sType;
+                       DE_NULL,                                                                                                        // const void*                                                          pNext;
+                       (VkPipelineVertexInputStateCreateFlags)0,                                       // VkPipelineVertexInputStateCreateFlags        flags;
+                       0u,                                                                                                                     // deUint32                                                                     vertexBindingDescriptionCount;
+                       DE_NULL,                                                                                                        // const VkVertexInputBindingDescription*       pVertexBindingDescriptions;
+                       0u,                                                                                                                     // deUint32                                                                     vertexAttributeDescriptionCount;
+                       DE_NULL                                                                                                         // const VkVertexInputAttributeDescription*     pVertexAttributeDescriptions;
+               };
+
+               const VkPipelineInputAssemblyStateCreateInfo    inputAssemblyStateCreateInfo    =
+               {
+                       VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO,    // VkStructureType                                                      sType;
+                       DE_NULL,                                                                                                                // const void*                                                          pNext;
+                       (VkPipelineInputAssemblyStateCreateFlags)0,                                             // VkPipelineInputAssemblyStateCreateFlags      flags;
+                       VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,                                                   // VkPrimitiveTopology                                          topology;
+                       VK_FALSE                                                                                                                // VkBool32                                                                     primitiveRestartEnable;
+               };
+
+               const VkPipelineRasterizationStateCreateInfo    rasterizationStateCreateInfo    =
+               {
+                       VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,             // VkStructureType                                                      sType;
+                       DE_NULL,                                                                                                                // const void*                                                          pNext;
+                       (VkPipelineRasterizationStateCreateFlags)0,                                             // VkPipelineRasterizationStateCreateFlags      flags;
+                       VK_FALSE,                                                                                                               // VkBool32                                                                     depthClampEnable;
+                       VK_FALSE,                                                                                                               // VkBool32                                                                     rasterizerDiscardEnable;
+                       VK_POLYGON_MODE_FILL,                                                                                   // VkPolygonMode                                                        polygonMode;
+                       VK_CULL_MODE_NONE,                                                                                              // VkCullModeFlags                                                      cullMode;
+                       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;
+               };
+
+               const VkPipelineMultisampleStateCreateInfo              multisampleStateCreateInfo =
+               {
+                       VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO,       // VkStructureType                                                      sType
+                       DE_NULL,                                                                                                        // const void*                                                          pNext
+                       0u,                                                                                                                     // VkPipelineMultisampleStateCreateFlags        flags
+                       (VkSampleCountFlagBits)m_data.samples,                                          // VkSampleCountFlagBits                                        rasterizationSamples
+                       m_data.sampleShading ? VK_TRUE : VK_FALSE,                                      // VkBool32                                                                     sampleShadingEnable
+                       1.0f,                                                                                                           // float                                                                        minSampleShading
+                       DE_NULL,                                                                                                        // const VkSampleMask*                                          pSampleMask
+                       VK_FALSE,                                                                                                       // VkBool32                                                                     alphaToCoverageEnable
+                       VK_FALSE                                                                                                        // VkBool32                                                                     alphaToOneEnable
+               };
+
+               VkViewport viewport = makeViewport(m_data.dim, m_data.dim);
+               VkRect2D scissor = makeRect2D(m_data.dim, m_data.dim);
+
+               VkShadingRatePaletteEntryNV paletteEntry = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV;
+               const VkShadingRatePaletteNV    shadingRatePalette      =
+               {
+                       1u,                                                                                                                     // uint32_t                                                             shadingRatePaletteEntryCount;
+                       &paletteEntry,                                                                                          // const VkShadingRatePaletteEntryNV*   pShadingRatePaletteEntries;
+               };
+
+               const VkPipelineViewportShadingRateImageStateCreateInfoNV       shadingRateCreateInfo   =
+               {
+                       VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV,    // VkStructureType                                                      sType
+                       DE_NULL,                                                                                                                                                // const void*                                                          pNext
+                       shadingRateImageEnable,                                                                                                                 // VkBool32                                                                     shadingRateImageEnable;
+                       1u,                                                                                                                                                             // deUint32                                                                     viewportCount
+                       &shadingRatePalette                                                                                                                             // const VkShadingRatePaletteNV*                        pShadingRatePalettes;
+               };
+
+               const VkPipelineViewportStateCreateInfo                 viewportStateCreateInfo                         =
+               {
+                       VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO,          // VkStructureType                                                      sType
+                       shadingRateImageEnable ? &shadingRateCreateInfo : DE_NULL,      // const void*                                                          pNext
+                       (VkPipelineViewportStateCreateFlags)0,                                          // VkPipelineViewportStateCreateFlags           flags
+                       1u,                                                                                                                     // deUint32                                                                     viewportCount
+                       &viewport,                                                                                                      // const VkViewport*                                            pViewports
+                       1u,                                                                                                                     // deUint32                                                                     scissorCount
+                       &scissor                                                                                                        // const VkRect2D*                                                      pScissors
+               };
+
+               Move<VkShaderModule> fs = createShaderModule(vk, device, m_context.getBinaryCollection().get("frag"), 0);
+               Move<VkShaderModule> vs = createShaderModule(vk, device, m_context.getBinaryCollection().get("vert"), 0);
+               deUint32 numStages = 2u;
+
+               const VkPipelineShaderStageCreateInfo   shaderCreateInfo[2] =
+               {
+                       {
+                               VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,
+                               DE_NULL,
+                               (VkPipelineShaderStageCreateFlags)0,
+                               VK_SHADER_STAGE_VERTEX_BIT,                                                                     // stage
+                               *vs,                                                                                                            // shader
+                               "main",
+                               DE_NULL,                                                                                                        // pSpecializationInfo
+                       },
+                       {
+                               VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,
+                               DE_NULL,
+                               (VkPipelineShaderStageCreateFlags)0,
+                               VK_SHADER_STAGE_FRAGMENT_BIT,                                                           // stage
+                               *fs,                                                                                                            // shader
+                               "main",
+                               DE_NULL,                                                                                                        // pSpecializationInfo
+                       }
+               };
+
+               const VkGraphicsPipelineCreateInfo                              graphicsPipelineCreateInfo              =
+               {
+                       VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO,        // VkStructureType                                                                      sType;
+                       DE_NULL,                                                                                        // const void*                                                                          pNext;
+                       (VkPipelineCreateFlags)0,                                                       // VkPipelineCreateFlags                                                        flags;
+                       numStages,                                                                                      // deUint32                                                                                     stageCount;
+                       &shaderCreateInfo[0],                                                           // const VkPipelineShaderStageCreateInfo*                       pStages;
+                       &vertexInputStateCreateInfo,                                            // const VkPipelineVertexInputStateCreateInfo*          pVertexInputState;
+                       &inputAssemblyStateCreateInfo,                                          // const VkPipelineInputAssemblyStateCreateInfo*        pInputAssemblyState;
+                       DE_NULL,                                                                                        // const VkPipelineTessellationStateCreateInfo*         pTessellationState;
+                       &viewportStateCreateInfo,                                                       // const VkPipelineViewportStateCreateInfo*                     pViewportState;
+                       &rasterizationStateCreateInfo,                                          // const VkPipelineRasterizationStateCreateInfo*        pRasterizationState;
+                       &multisampleStateCreateInfo,                                            // const VkPipelineMultisampleStateCreateInfo*          pMultisampleState;
+                       DE_NULL,                                                                                        // const VkPipelineDepthStencilStateCreateInfo*         pDepthStencilState;
+                       DE_NULL,                                                                                        // const VkPipelineColorBlendStateCreateInfo*           pColorBlendState;
+                       DE_NULL,                                                                                        // const VkPipelineDynamicStateCreateInfo*                      pDynamicState;
+                       pipelineLayout.get(),                                                           // VkPipelineLayout                                                                     layout;
+                       renderPass.get(),                                                                       // VkRenderPass                                                                         renderPass;
+                       0u,                                                                                                     // deUint32                                                                                     subpass;
+                       DE_NULL,                                                                                        // VkPipeline                                                                           basePipelineHandle;
+                       0                                                                                                       // int                                                                                          basePipelineIndex;
+               };
+
+               pipeline = createGraphicsPipeline(vk, device, DE_NULL, &graphicsPipelineCreateInfo);
+       }
+
+       const VkImageMemoryBarrier imageBarrier =
+       {
+               VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,                         // VkStructureType              sType
+               DE_NULL,                                                                                        // const void*                  pNext
+               0u,                                                                                                     // VkAccessFlags                srcAccessMask
+               VK_ACCESS_TRANSFER_WRITE_BIT,                                           // VkAccessFlags                dstAccessMask
+               VK_IMAGE_LAYOUT_UNDEFINED,                                                      // VkImageLayout                oldLayout
+               VK_IMAGE_LAYOUT_GENERAL,                                                        // VkImageLayout                newLayout
+               VK_QUEUE_FAMILY_IGNORED,                                                        // uint32_t                             srcQueueFamilyIndex
+               VK_QUEUE_FAMILY_IGNORED,                                                        // uint32_t                             dstQueueFamilyIndex
+               **image,                                                                                        // VkImage                              image
+               {
+                       VK_IMAGE_ASPECT_COLOR_BIT,                              // VkImageAspectFlags   aspectMask
+                       0u,                                                                             // uint32_t                             baseMipLevel
+                       1u,                                                                             // uint32_t                             mipLevels,
+                       0u,                                                                             // uint32_t                             baseArray
+                       1u,                                                                             // uint32_t                             arraySize
+               }
+       };
+
+       vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT,
+                                                       (VkDependencyFlags)0,
+                                                       0, (const VkMemoryBarrier*)DE_NULL,
+                                                       0, (const VkBufferMemoryBarrier*)DE_NULL,
+                                                       1, &imageBarrier);
+
+       vk.cmdBindPipeline(*cmdBuffer, bindPoint, *pipeline);
+
+       VkImageSubresourceRange range = makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u);
+       VkClearValue clearColor = makeClearValueColorU32(0,0,0,0);
+
+       VkMemoryBarrier                                 memBarrier =
+       {
+               VK_STRUCTURE_TYPE_MEMORY_BARRIER,       // sType
+               DE_NULL,                                                        // pNext
+               0u,                                                                     // srcAccessMask
+               0u,                                                                     // dstAccessMask
+       };
+
+       vk.cmdClearColorImage(*cmdBuffer, **image, VK_IMAGE_LAYOUT_GENERAL, &clearColor.color, 1, &range);
+
+       memBarrier.srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT;
+       memBarrier.dstAccessMask = VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_SHADER_WRITE_BIT;
+       vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, allPipelineStages,
+               0, 1, &memBarrier, 0, DE_NULL, 0, DE_NULL);
+
+       if (shadingRateImageEnable)
+               vk.cmdBindShadingRateImageNV(*cmdBuffer, DE_NULL, VK_IMAGE_LAYOUT_GENERAL);
+
+       beginRenderPass(vk, *cmdBuffer, *renderPass, *framebuffer,
+                                       makeRect2D(m_data.dim, m_data.dim),
+                                       0, DE_NULL, VK_SUBPASS_CONTENTS_INLINE);
+
+       // Draw N fullscreen "quads", one per instance.
+       deUint32 N = 32 / bitsPerQuad(m_data);
+       deUint32 expectedValue = 0xFFFFFFFF;
+       vk.cmdDraw(*cmdBuffer, 4u, N, 0u, 0u);
+
+       endRenderPass(vk, *cmdBuffer);
+
+       memBarrier.srcAccessMask = VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_SHADER_WRITE_BIT;
+       memBarrier.dstAccessMask = VK_ACCESS_TRANSFER_READ_BIT | VK_ACCESS_TRANSFER_WRITE_BIT;
+       vk.cmdPipelineBarrier(*cmdBuffer, allPipelineStages, VK_PIPELINE_STAGE_TRANSFER_BIT,
+               0, 1, &memBarrier, 0, DE_NULL, 0, DE_NULL);
+
+       deUint32 copyDimX = m_data.dim;
+       deUint32 copyDimY = m_data.dim;
+
+       if (m_data.isSampleInterlock())
+               copyDimX *= m_data.samples;
+
+       if (shadingRateImageEnable)
+       {
+               copyDimX /= 2;
+               copyDimY /= 2;
+       }
+
+       if (m_data.resType == RES_IMAGE)
+       {
+               const VkBufferImageCopy copyRegion = makeBufferImageCopy(makeExtent3D(copyDimX, copyDimY, 1u),
+                                                                                                                                makeImageSubresourceLayers(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 0u, 1u));
+               vk.cmdCopyImageToBuffer(*cmdBuffer, **image, VK_IMAGE_LAYOUT_GENERAL, **copyBuffer, 1u, &copyRegion);
+       }
+       else
+       {
+               const VkBufferCopy              copyRegion      = makeBufferCopy(0u, 0u, copyDimX*copyDimY*sizeof(deUint32));
+               vk.cmdCopyBuffer(*cmdBuffer, **buffer, **copyBuffer, 1, &copyRegion);
+       }
+
+       endCommandBuffer(vk, *cmdBuffer);
+
+       submitCommandsAndWait(vk, device, queue, cmdBuffer.get());
+
+       deUint32 *ptr = (deUint32 *)copyBuffer->getAllocation().getHostPtr();
+       invalidateAlloc(vk, device, copyBuffer->getAllocation());
+
+       qpTestResult res = QP_TEST_RESULT_PASS;
+
+       for (deUint32 i = 0; i < copyDimX*copyDimY; ++i)
+       {
+               if (m_data.killOdd && (i & 1))
+               {
+                       if (ptr[i] != 0)
+                               res = QP_TEST_RESULT_FAIL;
+               }
+               else if (ptr[i] != expectedValue)
+                       res = QP_TEST_RESULT_FAIL;
+       }
+
+       return tcu::TestStatus(res, qpGetTestResultName(res));
+}
+
+}      // anonymous
+
+tcu::TestCaseGroup*    createBasicTests (tcu::TestContext& testCtx)
+{
+       de::MovePtr<tcu::TestCaseGroup> group(new tcu::TestCaseGroup(testCtx, "basic", "Test VK_EXT_fragment_shader_interlock"));
+
+       typedef struct
+       {
+               deUint32                                count;
+               const char*                             name;
+               const char*                             description;
+       } TestGroupCase;
+
+       TestGroupCase dimCases[] =
+       {
+               { 8,    "8x8",          "8x8"           },
+               { 16,   "16x16",        "16x16"         },
+               { 32,   "32x32",        "32x32"         },
+               { 64,   "64x64",        "64x64" },
+               { 128,  "128x128",      "128x128"       },
+               { 256,  "256x256",      "256x256"       },
+               { 512,  "512x512",      "512x512"       },
+               { 1024, "1024x1024","1024x1024" },
+       };
+
+       TestGroupCase resCases[] =
+       {
+               { RES_IMAGE,    "image",        "image"         },
+               { RES_SSBO,             "ssbo",         "ssbo"          },
+       };
+
+       TestGroupCase killCases[] =
+       {
+               { 0,    "nodiscard",    "no discard"            },
+               { 1,    "discard",              "discard odd pixels"},
+       };
+
+       TestGroupCase sampCases[] =
+       {
+               { 1,    "1xaa",         "1 sample"      },
+               { 4,    "4xaa",         "4 sample"      },
+       };
+
+       TestGroupCase ssCases[] =
+       {
+               { 0,    "no_sample_shading",            "no sample shading"     },
+               { 1,    "sample_shading",                       "sample shading"        },
+       };
+
+       TestGroupCase intCases[] =
+       {
+               { INT_PIXEL_ORDERED,    "pixel_ordered",        "pixel_ordered"         },
+               { INT_PIXEL_UNORDERED,  "pixel_unordered",      "pixel_unordered"               },
+               { INT_SAMPLE_ORDERED,   "sample_ordered",       "sample_ordered"                },
+               { INT_SAMPLE_UNORDERED, "sample_unordered",     "sample_unordered"              },
+               { INT_SHADING_RATE_ORDERED,             "shading_rate_ordered", "shading_rate_ordered"          },
+               { INT_SHADING_RATE_UNORDERED,   "shading_rate_unordered",       "shading_rate_unordered"                },
+       };
+
+       for (int killNdx = 0; killNdx < DE_LENGTH_OF_ARRAY(killCases); killNdx++)
+       {
+               de::MovePtr<tcu::TestCaseGroup> killGroup(new tcu::TestCaseGroup(testCtx, killCases[killNdx].name, killCases[killNdx].description));
+               for (int resNdx = 0; resNdx < DE_LENGTH_OF_ARRAY(resCases); resNdx++)
+               {
+                       de::MovePtr<tcu::TestCaseGroup> resGroup(new tcu::TestCaseGroup(testCtx, resCases[resNdx].name, resCases[resNdx].description));
+                       for (int intNdx = 0; intNdx < DE_LENGTH_OF_ARRAY(intCases); intNdx++)
+                       {
+                               de::MovePtr<tcu::TestCaseGroup> intGroup(new tcu::TestCaseGroup(testCtx, intCases[intNdx].name, intCases[intNdx].description));
+                               for (int sampNdx = 0; sampNdx < DE_LENGTH_OF_ARRAY(sampCases); sampNdx++)
+                               {
+                                       de::MovePtr<tcu::TestCaseGroup> sampGroup(new tcu::TestCaseGroup(testCtx, sampCases[sampNdx].name, sampCases[sampNdx].description));
+                                       for (int ssNdx = 0; ssNdx < DE_LENGTH_OF_ARRAY(ssCases); ssNdx++)
+                                       {
+                                               de::MovePtr<tcu::TestCaseGroup> ssGroup(new tcu::TestCaseGroup(testCtx, ssCases[ssNdx].name, ssCases[ssNdx].description));
+                                               for (int dimNdx = 0; dimNdx < DE_LENGTH_OF_ARRAY(dimCases); dimNdx++)
+                                               {
+                                                       CaseDef c =
+                                                       {
+                                                               dimCases[dimNdx].count,                                                         // deUint32 set;
+                                                               (Resource)resCases[resNdx].count,                                       // Resource resType;
+                                                               (Interlock)intCases[intNdx].count,                                      // Interlock interlock;
+                                                               (VkSampleCountFlagBits)sampCases[sampNdx].count,        // VkSampleCountFlagBits samples;
+                                                               (bool)killCases[killNdx].count,                                         // bool killOdd;
+                                                               (bool)ssCases[ssNdx].count,                                                     // bool sampleShading;
+                                                       };
+
+                                                       if (c.sampleShading && c.samples == 1)
+                                                               continue;
+
+                                                       ssGroup->addChild(new FSITestCase(testCtx, dimCases[dimNdx].name, dimCases[dimNdx].description, c));
+                                               }
+                                               sampGroup->addChild(ssGroup.release());
+                                       }
+                                       intGroup->addChild(sampGroup.release());
+                               }
+                               resGroup->addChild(intGroup.release());
+                       }
+                       killGroup->addChild(resGroup.release());
+               }
+               group->addChild(killGroup.release());
+       }
+       return group.release();
+}
+
+}      // FragmentShaderInterlock
+}      // vkt
diff --git a/external/vulkancts/modules/vulkan/fragment_shader_interlock/vktFragmentShaderInterlockBasic.hpp b/external/vulkancts/modules/vulkan/fragment_shader_interlock/vktFragmentShaderInterlockBasic.hpp
new file mode 100644 (file)
index 0000000..bae106b
--- /dev/null
@@ -0,0 +1,40 @@
+#ifndef _VKTFRAGMENTSHADERINTERLOCKBASIC_HPP
+#define _VKTFRAGMENTSHADERINTERLOCKBASIC_HPP
+/*-------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2018 Google Inc.
+ * Copyright (c) 2019 NVIDIA 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 Tests for VK_EXT_fragment_shader_interlock.
+ *//*--------------------------------------------------------------------*/
+
+#include "tcuDefs.hpp"
+#include "tcuTestCase.hpp"
+
+namespace vkt
+{
+namespace FragmentShaderInterlock
+{
+
+tcu::TestCaseGroup* createBasicTests(tcu::TestContext& testCtx);
+
+} // FragmentShaderInterlock
+} // vkt
+
+#endif // _VKTFRAGMENTSHADERINTERLOCKBASIC_HPP
diff --git a/external/vulkancts/modules/vulkan/fragment_shader_interlock/vktFragmentShaderInterlockTests.cpp b/external/vulkancts/modules/vulkan/fragment_shader_interlock/vktFragmentShaderInterlockTests.cpp
new file mode 100644 (file)
index 0000000..4709414
--- /dev/null
@@ -0,0 +1,52 @@
+/*-------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2015 Google Inc.
+ * Copyright (c) 2019 NVIDIA 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 Fragment shader interlock tests
+ *//*--------------------------------------------------------------------*/
+
+#include "vktFragmentShaderInterlockTests.hpp"
+#include "vktFragmentShaderInterlockBasic.hpp"
+#include "vktTestGroupUtil.hpp"
+
+namespace vkt
+{
+namespace FragmentShaderInterlock
+{
+
+namespace
+{
+
+void createChildren (tcu::TestCaseGroup* group)
+{
+       tcu::TestContext&       testCtx         = group->getTestContext();
+
+       group->addChild(createBasicTests(testCtx));
+}
+
+} // anonymous
+
+tcu::TestCaseGroup* createTests (tcu::TestContext& testCtx)
+{
+       return createTestGroup(testCtx, "fragment_shader_interlock", "Fragment shader interlock tests", createChildren);
+}
+
+} // FragmentShaderInterlock
+} // vkt
diff --git a/external/vulkancts/modules/vulkan/fragment_shader_interlock/vktFragmentShaderInterlockTests.hpp b/external/vulkancts/modules/vulkan/fragment_shader_interlock/vktFragmentShaderInterlockTests.hpp
new file mode 100644 (file)
index 0000000..45791e0
--- /dev/null
@@ -0,0 +1,40 @@
+#ifndef _VKTFRAGMENTSHADERINTERLOCKTESTS_HPP
+#define _VKTFRAGMENTSHADERINTERLOCKTESTS_HPP
+/*-------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2015 Google Inc.
+ * Copyright (c) 2019 NVIDIA 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 Fragment Shader Interlock tests
+ *//*--------------------------------------------------------------------*/
+
+#include "tcuDefs.hpp"
+#include "tcuTestCase.hpp"
+
+namespace vkt
+{
+namespace FragmentShaderInterlock
+{
+
+tcu::TestCaseGroup* createTests (tcu::TestContext& testCtx);
+
+} // FragmentShaderInterlock
+} // vkt
+
+#endif // _VKTFRAGMENTSHADERINTERLOCKTESTS_HPP
index b28c697ebbce9536c3af30745d6e841df3a3963f..5338c15749f64f998f02c6a6813f8c00c9ce3406 100644 (file)
@@ -92,7 +92,8 @@ vector<string> filterExtensions (const vector<VkExtensionProperties>& extensions
                "VK_KHR_",
                "VK_EXT_",
                "VK_KHX_",
-               "VK_NV_cooperative_matrix"
+               "VK_NV_cooperative_matrix",
+               "VK_NV_shading_rate_image",
        };
 
        for (size_t extNdx = 0; extNdx < extensions.size(); extNdx++)
index d2b8984d46ef24737fbdba5a1406e25c06d3a3ff..452096982b12c7d2a3504f4a6cffc513cfeed5d1 100644 (file)
@@ -93,6 +93,7 @@
 #include "vktTransformFeedbackTests.hpp"
 #include "vktDescriptorIndexingTests.hpp"
 #include "vktImagelessFramebufferTests.hpp"
+#include "vktFragmentShaderInterlockTests.hpp"
 
 #include <vector>
 #include <sstream>
@@ -509,6 +510,7 @@ void TestPackage::init (void)
        addChild(TransformFeedback::createTests         (m_testCtx));
        addChild(DescriptorIndexing::createTests        (m_testCtx));
        addChild(imageless::createTests                         (m_testCtx));
+       addChild(FragmentShaderInterlock::createTests(m_testCtx));
 }
 
 } // vkt
index e0eabd640aa494d17adba8dcdc7e64b21b5d084b..81491ece3430d88d77d0df4979990d0ddd17713a 100644 (file)
@@ -464928,3 +464928,579 @@ dEQP-VK.imageless_framebuffer.depth_stencil
 dEQP-VK.imageless_framebuffer.color_resolve
 dEQP-VK.imageless_framebuffer.depth_stencil_resolve
 dEQP-VK.imageless_framebuffer.multisubpass
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.sample_shading.128x128
+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
index 5ca8dca3db6e8bb5b2485aabceaffcb107f4cbd9..864ce90fcff9a11e71844a49df3e14100d781804 100644 (file)
@@ -464775,3 +464775,579 @@ dEQP-VK.imageless_framebuffer.depth_stencil
 dEQP-VK.imageless_framebuffer.color_resolve
 dEQP-VK.imageless_framebuffer.depth_stencil_resolve
 dEQP-VK.imageless_framebuffer.multisubpass
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.pixel_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.sample_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.image.shading_rate_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.pixel_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.sample_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.nodiscard.ssbo.shading_rate_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.pixel_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.sample_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.image.shading_rate_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.pixel_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.sample_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_ordered.4xaa.sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.1xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.128x128
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.256x256
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.512x512
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.no_sample_shading.1024x1024
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.sample_shading.8x8
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.sample_shading.16x16
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.sample_shading.32x32
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.sample_shading.64x64
+dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.sample_shading.128x128
+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
index 45a2530ff47c8e6f752e17a2b8fcfe4b253cd9c9..7f3548b923287e82de1524affec6c59f8b0f5a15 100755 (executable)
@@ -492,6 +492,7 @@ typedef enum VkStructureType {
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000,
     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001,
     VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR = 1000253000,
     VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000,
@@ -9381,6 +9382,18 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSupportedFramebufferMixedSampl
 #endif
 
 
+#define VK_EXT_fragment_shader_interlock 1
+#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION 1
+#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock"
+typedef struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           fragmentShaderSampleInterlock;
+    VkBool32           fragmentShaderPixelInterlock;
+    VkBool32           fragmentShaderShadingRateInterlock;
+} VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT;
+
+
 #define VK_EXT_ycbcr_image_arrays 1
 #define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1
 #define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays"