Extend renderpass tests to use input attachments
authorMika Isojärvi <misojarvi@google.com>
Wed, 17 Aug 2016 20:23:36 +0000 (13:23 -0700)
committerPyry Haulos <phaulos@google.com>
Thu, 20 Oct 2016 18:14:43 +0000 (14:14 -0400)
- Render only values 0 and 1 to all attachments.
- The value depends on attachment, subpass and pixel location.
- Depth formats also sets gl_FragDepth to 0.0 or 1.0 depending on location.
- Stencil uses only values 0 and 0xff.
- Verification requires that the quads are rasterized exactly and
  that all result values are either 0 or 1.
- Input attachment containing 1s and 0s are interpreted as true and
  false bools and input values are combined with boolean operations and
  written to shader outputs.

See #447
Change-Id: I4ebe3d9b5151d40558e473a028ee458cf6285a85

android/cts/master/vk-master.txt
external/vulkancts/modules/vulkan/vktRenderPassTests.cpp
external/vulkancts/mustpass/1.0.2/vk-default.txt

index 45d49d4..2645ac4 100644 (file)
@@ -96863,6 +96863,42 @@ dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.load.clear_draw
 dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.dont_care.clear
 dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.dont_care.draw
 dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.clear.store.clear
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.clear.store.draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.load.store.clear
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.load.store.draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r8_unorm.clear.clear
 dEQP-VK.renderpass.formats.r8_unorm.clear.draw
 dEQP-VK.renderpass.formats.r8_unorm.clear.clear_draw
@@ -96872,6 +96908,42 @@ dEQP-VK.renderpass.formats.r8_unorm.load.clear_draw
 dEQP-VK.renderpass.formats.r8_unorm.dont_care.clear
 dEQP-VK.renderpass.formats.r8_unorm.dont_care.draw
 dEQP-VK.renderpass.formats.r8_unorm.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.clear.store.clear
+dEQP-VK.renderpass.formats.r8_unorm.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8_unorm.input.clear.store.draw
+dEQP-VK.renderpass.formats.r8_unorm.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r8_unorm.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8_unorm.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r8_unorm.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.load.store.clear
+dEQP-VK.renderpass.formats.r8_unorm.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8_unorm.input.load.store.draw
+dEQP-VK.renderpass.formats.r8_unorm.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r8_unorm.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8_unorm.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r8_unorm.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r8_unorm.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8_unorm.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r8_unorm.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r8_unorm.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8_unorm.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r8_unorm.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r8_snorm.clear.clear
 dEQP-VK.renderpass.formats.r8_snorm.clear.draw
 dEQP-VK.renderpass.formats.r8_snorm.clear.clear_draw
@@ -96881,6 +96953,42 @@ dEQP-VK.renderpass.formats.r8_snorm.load.clear_draw
 dEQP-VK.renderpass.formats.r8_snorm.dont_care.clear
 dEQP-VK.renderpass.formats.r8_snorm.dont_care.draw
 dEQP-VK.renderpass.formats.r8_snorm.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.clear.store.clear
+dEQP-VK.renderpass.formats.r8_snorm.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8_snorm.input.clear.store.draw
+dEQP-VK.renderpass.formats.r8_snorm.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r8_snorm.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8_snorm.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r8_snorm.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.load.store.clear
+dEQP-VK.renderpass.formats.r8_snorm.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8_snorm.input.load.store.draw
+dEQP-VK.renderpass.formats.r8_snorm.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r8_snorm.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8_snorm.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r8_snorm.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r8_snorm.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8_snorm.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r8_snorm.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r8_snorm.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8_snorm.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r8_snorm.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r8_uint.clear.clear
 dEQP-VK.renderpass.formats.r8_uint.clear.draw
 dEQP-VK.renderpass.formats.r8_uint.clear.clear_draw
@@ -96890,6 +96998,42 @@ dEQP-VK.renderpass.formats.r8_uint.load.clear_draw
 dEQP-VK.renderpass.formats.r8_uint.dont_care.clear
 dEQP-VK.renderpass.formats.r8_uint.dont_care.draw
 dEQP-VK.renderpass.formats.r8_uint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8_uint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r8_uint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8_uint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r8_uint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8_uint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r8_uint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_uint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r8_uint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8_uint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r8_uint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8_uint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8_uint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_uint.input.load.store.clear
+dEQP-VK.renderpass.formats.r8_uint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8_uint.input.load.store.draw
+dEQP-VK.renderpass.formats.r8_uint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8_uint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r8_uint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_uint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r8_uint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8_uint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r8_uint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8_uint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8_uint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_uint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r8_uint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8_uint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r8_uint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8_uint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r8_uint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_uint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r8_uint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8_uint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r8_uint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8_uint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8_uint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r8_sint.clear.clear
 dEQP-VK.renderpass.formats.r8_sint.clear.draw
 dEQP-VK.renderpass.formats.r8_sint.clear.clear_draw
@@ -96899,6 +97043,42 @@ dEQP-VK.renderpass.formats.r8_sint.load.clear_draw
 dEQP-VK.renderpass.formats.r8_sint.dont_care.clear
 dEQP-VK.renderpass.formats.r8_sint.dont_care.draw
 dEQP-VK.renderpass.formats.r8_sint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8_sint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r8_sint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8_sint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r8_sint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8_sint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r8_sint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_sint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r8_sint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8_sint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r8_sint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8_sint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8_sint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_sint.input.load.store.clear
+dEQP-VK.renderpass.formats.r8_sint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8_sint.input.load.store.draw
+dEQP-VK.renderpass.formats.r8_sint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8_sint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r8_sint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_sint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r8_sint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8_sint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r8_sint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8_sint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8_sint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_sint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r8_sint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8_sint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r8_sint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8_sint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r8_sint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_sint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r8_sint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8_sint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r8_sint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8_sint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8_sint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r8g8_unorm.clear.clear
 dEQP-VK.renderpass.formats.r8g8_unorm.clear.draw
 dEQP-VK.renderpass.formats.r8g8_unorm.clear.clear_draw
@@ -96908,6 +97088,42 @@ dEQP-VK.renderpass.formats.r8g8_unorm.load.clear_draw
 dEQP-VK.renderpass.formats.r8g8_unorm.dont_care.clear
 dEQP-VK.renderpass.formats.r8g8_unorm.dont_care.draw
 dEQP-VK.renderpass.formats.r8g8_unorm.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.clear.store.clear
+dEQP-VK.renderpass.formats.r8g8_unorm.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_unorm.input.clear.store.draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8_unorm.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_unorm.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.load.store.clear
+dEQP-VK.renderpass.formats.r8g8_unorm.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_unorm.input.load.store.draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8_unorm.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_unorm.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r8g8_unorm.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_unorm.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8_unorm.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_unorm.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r8g8_snorm.clear.clear
 dEQP-VK.renderpass.formats.r8g8_snorm.clear.draw
 dEQP-VK.renderpass.formats.r8g8_snorm.clear.clear_draw
@@ -96917,6 +97133,42 @@ dEQP-VK.renderpass.formats.r8g8_snorm.load.clear_draw
 dEQP-VK.renderpass.formats.r8g8_snorm.dont_care.clear
 dEQP-VK.renderpass.formats.r8g8_snorm.dont_care.draw
 dEQP-VK.renderpass.formats.r8g8_snorm.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.clear.store.clear
+dEQP-VK.renderpass.formats.r8g8_snorm.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_snorm.input.clear.store.draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8_snorm.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_snorm.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.load.store.clear
+dEQP-VK.renderpass.formats.r8g8_snorm.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_snorm.input.load.store.draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8_snorm.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_snorm.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r8g8_snorm.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_snorm.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8_snorm.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_snorm.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r8g8_uint.clear.clear
 dEQP-VK.renderpass.formats.r8g8_uint.clear.draw
 dEQP-VK.renderpass.formats.r8g8_uint.clear.clear_draw
@@ -96926,6 +97178,42 @@ dEQP-VK.renderpass.formats.r8g8_uint.load.clear_draw
 dEQP-VK.renderpass.formats.r8g8_uint.dont_care.clear
 dEQP-VK.renderpass.formats.r8g8_uint.dont_care.draw
 dEQP-VK.renderpass.formats.r8g8_uint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r8g8_uint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_uint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8_uint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_uint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.load.store.clear
+dEQP-VK.renderpass.formats.r8g8_uint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_uint.input.load.store.draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8_uint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_uint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r8g8_uint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_uint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8_uint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_uint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r8g8_sint.clear.clear
 dEQP-VK.renderpass.formats.r8g8_sint.clear.draw
 dEQP-VK.renderpass.formats.r8g8_sint.clear.clear_draw
@@ -96935,6 +97223,42 @@ dEQP-VK.renderpass.formats.r8g8_sint.load.clear_draw
 dEQP-VK.renderpass.formats.r8g8_sint.dont_care.clear
 dEQP-VK.renderpass.formats.r8g8_sint.dont_care.draw
 dEQP-VK.renderpass.formats.r8g8_sint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r8g8_sint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_sint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8_sint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_sint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.load.store.clear
+dEQP-VK.renderpass.formats.r8g8_sint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_sint.input.load.store.draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8_sint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_sint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r8g8_sint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_sint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8_sint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_sint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r8g8b8a8_unorm.clear.clear
 dEQP-VK.renderpass.formats.r8g8b8a8_unorm.clear.draw
 dEQP-VK.renderpass.formats.r8g8b8a8_unorm.clear.clear_draw
@@ -96944,6 +97268,42 @@ dEQP-VK.renderpass.formats.r8g8b8a8_unorm.load.clear_draw
 dEQP-VK.renderpass.formats.r8g8b8a8_unorm.dont_care.clear
 dEQP-VK.renderpass.formats.r8g8b8a8_unorm.dont_care.draw
 dEQP-VK.renderpass.formats.r8g8b8a8_unorm.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.clear.store.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.clear.store.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.load.store.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.load.store.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r8g8b8a8_snorm.clear.clear
 dEQP-VK.renderpass.formats.r8g8b8a8_snorm.clear.draw
 dEQP-VK.renderpass.formats.r8g8b8a8_snorm.clear.clear_draw
@@ -96953,6 +97313,42 @@ dEQP-VK.renderpass.formats.r8g8b8a8_snorm.load.clear_draw
 dEQP-VK.renderpass.formats.r8g8b8a8_snorm.dont_care.clear
 dEQP-VK.renderpass.formats.r8g8b8a8_snorm.dont_care.draw
 dEQP-VK.renderpass.formats.r8g8b8a8_snorm.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.clear.store.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.clear.store.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.load.store.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.load.store.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r8g8b8a8_uint.clear.clear
 dEQP-VK.renderpass.formats.r8g8b8a8_uint.clear.draw
 dEQP-VK.renderpass.formats.r8g8b8a8_uint.clear.clear_draw
@@ -96962,6 +97358,42 @@ dEQP-VK.renderpass.formats.r8g8b8a8_uint.load.clear_draw
 dEQP-VK.renderpass.formats.r8g8b8a8_uint.dont_care.clear
 dEQP-VK.renderpass.formats.r8g8b8a8_uint.dont_care.draw
 dEQP-VK.renderpass.formats.r8g8b8a8_uint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.load.store.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.load.store.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r8g8b8a8_sint.clear.clear
 dEQP-VK.renderpass.formats.r8g8b8a8_sint.clear.draw
 dEQP-VK.renderpass.formats.r8g8b8a8_sint.clear.clear_draw
@@ -96971,6 +97403,42 @@ dEQP-VK.renderpass.formats.r8g8b8a8_sint.load.clear_draw
 dEQP-VK.renderpass.formats.r8g8b8a8_sint.dont_care.clear
 dEQP-VK.renderpass.formats.r8g8b8a8_sint.dont_care.draw
 dEQP-VK.renderpass.formats.r8g8b8a8_sint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.load.store.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.load.store.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r8g8b8a8_srgb.clear.clear
 dEQP-VK.renderpass.formats.r8g8b8a8_srgb.clear.draw
 dEQP-VK.renderpass.formats.r8g8b8a8_srgb.clear.clear_draw
@@ -96980,6 +97448,42 @@ dEQP-VK.renderpass.formats.r8g8b8a8_srgb.load.clear_draw
 dEQP-VK.renderpass.formats.r8g8b8a8_srgb.dont_care.clear
 dEQP-VK.renderpass.formats.r8g8b8a8_srgb.dont_care.draw
 dEQP-VK.renderpass.formats.r8g8b8a8_srgb.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.clear.store.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.clear.store.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.load.store.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.load.store.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.clear.clear
 dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.clear.draw
 dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.clear.clear_draw
@@ -96989,6 +97493,42 @@ dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.load.clear_draw
 dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.dont_care.clear
 dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.dont_care.draw
 dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.clear.store.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.clear.store.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.load.store.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.load.store.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.clear.clear
 dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.clear.draw
 dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.clear.clear_draw
@@ -96998,6 +97538,42 @@ dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.load.clear_draw
 dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.dont_care.clear
 dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.dont_care.draw
 dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.clear.store.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.clear.store.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.load.store.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.load.store.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.clear.clear
 dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.clear.draw
 dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.clear.clear_draw
@@ -97007,6 +97583,42 @@ dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.load.clear_draw
 dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.dont_care.clear
 dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.dont_care.draw
 dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.clear.store.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.clear.store.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.load.store.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.load.store.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.clear.clear
 dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.clear.draw
 dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.clear.clear_draw
@@ -97016,6 +97628,42 @@ dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.load.clear_draw
 dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.dont_care.clear
 dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.dont_care.draw
 dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.clear.store.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.clear.store.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.load.store.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.load.store.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.clear.clear
 dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.clear.draw
 dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.clear.clear_draw
@@ -97025,6 +97673,42 @@ dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.load.clear_draw
 dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.dont_care.clear
 dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.dont_care.draw
 dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.clear.store.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.clear.store.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.load.store.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.load.store.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.b8g8r8a8_unorm.clear.clear
 dEQP-VK.renderpass.formats.b8g8r8a8_unorm.clear.draw
 dEQP-VK.renderpass.formats.b8g8r8a8_unorm.clear.clear_draw
@@ -97034,6 +97718,42 @@ dEQP-VK.renderpass.formats.b8g8r8a8_unorm.load.clear_draw
 dEQP-VK.renderpass.formats.b8g8r8a8_unorm.dont_care.clear
 dEQP-VK.renderpass.formats.b8g8r8a8_unorm.dont_care.draw
 dEQP-VK.renderpass.formats.b8g8r8a8_unorm.dont_care.clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.clear.store.clear
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.clear.store.draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.load.store.clear
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.load.store.draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.b8g8r8a8_srgb.clear.clear
 dEQP-VK.renderpass.formats.b8g8r8a8_srgb.clear.draw
 dEQP-VK.renderpass.formats.b8g8r8a8_srgb.clear.clear_draw
@@ -97043,6 +97763,42 @@ dEQP-VK.renderpass.formats.b8g8r8a8_srgb.load.clear_draw
 dEQP-VK.renderpass.formats.b8g8r8a8_srgb.dont_care.clear
 dEQP-VK.renderpass.formats.b8g8r8a8_srgb.dont_care.draw
 dEQP-VK.renderpass.formats.b8g8r8a8_srgb.dont_care.clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.clear.store.clear
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.clear.store.draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.load.store.clear
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.load.store.draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.clear.clear
 dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.clear.draw
 dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.clear.clear_draw
@@ -97052,6 +97808,42 @@ dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.load.clear_draw
 dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.dont_care.clear
 dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.dont_care.draw
 dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.clear.store.clear
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.clear.store.draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.load.store.clear
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.load.store.draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.clear.clear
 dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.clear.draw
 dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.clear.clear_draw
@@ -97061,6 +97853,42 @@ dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.load.clear_draw
 dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.dont_care.clear
 dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.dont_care.draw
 dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.clear.store.clear
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.clear.store.draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.load.store.clear
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.load.store.draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.clear.clear
 dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.clear.draw
 dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.clear.clear_draw
@@ -97070,6 +97898,42 @@ dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.load.clear_draw
 dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.dont_care.clear
 dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.dont_care.draw
 dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.clear.store.clear
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.clear.store.draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.load.store.clear
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.load.store.draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r16_unorm.clear.clear
 dEQP-VK.renderpass.formats.r16_unorm.clear.draw
 dEQP-VK.renderpass.formats.r16_unorm.clear.clear_draw
@@ -97079,6 +97943,42 @@ dEQP-VK.renderpass.formats.r16_unorm.load.clear_draw
 dEQP-VK.renderpass.formats.r16_unorm.dont_care.clear
 dEQP-VK.renderpass.formats.r16_unorm.dont_care.draw
 dEQP-VK.renderpass.formats.r16_unorm.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.clear.store.clear
+dEQP-VK.renderpass.formats.r16_unorm.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16_unorm.input.clear.store.draw
+dEQP-VK.renderpass.formats.r16_unorm.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r16_unorm.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16_unorm.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r16_unorm.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.load.store.clear
+dEQP-VK.renderpass.formats.r16_unorm.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16_unorm.input.load.store.draw
+dEQP-VK.renderpass.formats.r16_unorm.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r16_unorm.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16_unorm.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r16_unorm.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r16_unorm.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16_unorm.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r16_unorm.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r16_unorm.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16_unorm.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r16_unorm.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r16_snorm.clear.clear
 dEQP-VK.renderpass.formats.r16_snorm.clear.draw
 dEQP-VK.renderpass.formats.r16_snorm.clear.clear_draw
@@ -97088,6 +97988,42 @@ dEQP-VK.renderpass.formats.r16_snorm.load.clear_draw
 dEQP-VK.renderpass.formats.r16_snorm.dont_care.clear
 dEQP-VK.renderpass.formats.r16_snorm.dont_care.draw
 dEQP-VK.renderpass.formats.r16_snorm.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.clear.store.clear
+dEQP-VK.renderpass.formats.r16_snorm.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16_snorm.input.clear.store.draw
+dEQP-VK.renderpass.formats.r16_snorm.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r16_snorm.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16_snorm.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r16_snorm.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.load.store.clear
+dEQP-VK.renderpass.formats.r16_snorm.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16_snorm.input.load.store.draw
+dEQP-VK.renderpass.formats.r16_snorm.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r16_snorm.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16_snorm.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r16_snorm.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r16_snorm.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16_snorm.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r16_snorm.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r16_snorm.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16_snorm.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r16_snorm.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r16_uint.clear.clear
 dEQP-VK.renderpass.formats.r16_uint.clear.draw
 dEQP-VK.renderpass.formats.r16_uint.clear.clear_draw
@@ -97097,6 +98033,42 @@ dEQP-VK.renderpass.formats.r16_uint.load.clear_draw
 dEQP-VK.renderpass.formats.r16_uint.dont_care.clear
 dEQP-VK.renderpass.formats.r16_uint.dont_care.draw
 dEQP-VK.renderpass.formats.r16_uint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_uint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r16_uint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16_uint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r16_uint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16_uint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r16_uint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_uint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r16_uint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16_uint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r16_uint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16_uint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_uint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_uint.input.load.store.clear
+dEQP-VK.renderpass.formats.r16_uint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16_uint.input.load.store.draw
+dEQP-VK.renderpass.formats.r16_uint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16_uint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r16_uint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_uint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r16_uint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16_uint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r16_uint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16_uint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_uint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_uint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r16_uint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16_uint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r16_uint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16_uint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r16_uint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_uint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r16_uint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16_uint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r16_uint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16_uint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_uint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r16_sint.clear.clear
 dEQP-VK.renderpass.formats.r16_sint.clear.draw
 dEQP-VK.renderpass.formats.r16_sint.clear.clear_draw
@@ -97106,6 +98078,42 @@ dEQP-VK.renderpass.formats.r16_sint.load.clear_draw
 dEQP-VK.renderpass.formats.r16_sint.dont_care.clear
 dEQP-VK.renderpass.formats.r16_sint.dont_care.draw
 dEQP-VK.renderpass.formats.r16_sint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_sint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r16_sint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16_sint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r16_sint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16_sint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r16_sint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_sint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r16_sint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16_sint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r16_sint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16_sint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_sint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_sint.input.load.store.clear
+dEQP-VK.renderpass.formats.r16_sint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16_sint.input.load.store.draw
+dEQP-VK.renderpass.formats.r16_sint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16_sint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r16_sint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_sint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r16_sint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16_sint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r16_sint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16_sint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_sint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_sint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r16_sint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16_sint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r16_sint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16_sint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r16_sint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_sint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r16_sint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16_sint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r16_sint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16_sint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_sint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r16_sfloat.clear.clear
 dEQP-VK.renderpass.formats.r16_sfloat.clear.draw
 dEQP-VK.renderpass.formats.r16_sfloat.clear.clear_draw
@@ -97115,6 +98123,42 @@ dEQP-VK.renderpass.formats.r16_sfloat.load.clear_draw
 dEQP-VK.renderpass.formats.r16_sfloat.dont_care.clear
 dEQP-VK.renderpass.formats.r16_sfloat.dont_care.draw
 dEQP-VK.renderpass.formats.r16_sfloat.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.clear.store.clear
+dEQP-VK.renderpass.formats.r16_sfloat.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16_sfloat.input.clear.store.draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r16_sfloat.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16_sfloat.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.load.store.clear
+dEQP-VK.renderpass.formats.r16_sfloat.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16_sfloat.input.load.store.draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r16_sfloat.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16_sfloat.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r16_sfloat.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16_sfloat.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r16_sfloat.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16_sfloat.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r16g16_unorm.clear.clear
 dEQP-VK.renderpass.formats.r16g16_unorm.clear.draw
 dEQP-VK.renderpass.formats.r16g16_unorm.clear.clear_draw
@@ -97124,6 +98168,42 @@ dEQP-VK.renderpass.formats.r16g16_unorm.load.clear_draw
 dEQP-VK.renderpass.formats.r16g16_unorm.dont_care.clear
 dEQP-VK.renderpass.formats.r16g16_unorm.dont_care.draw
 dEQP-VK.renderpass.formats.r16g16_unorm.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.clear.store.clear
+dEQP-VK.renderpass.formats.r16g16_unorm.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_unorm.input.clear.store.draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16_unorm.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_unorm.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.load.store.clear
+dEQP-VK.renderpass.formats.r16g16_unorm.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_unorm.input.load.store.draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16_unorm.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_unorm.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r16g16_unorm.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_unorm.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16_unorm.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_unorm.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r16g16_snorm.clear.clear
 dEQP-VK.renderpass.formats.r16g16_snorm.clear.draw
 dEQP-VK.renderpass.formats.r16g16_snorm.clear.clear_draw
@@ -97133,6 +98213,42 @@ dEQP-VK.renderpass.formats.r16g16_snorm.load.clear_draw
 dEQP-VK.renderpass.formats.r16g16_snorm.dont_care.clear
 dEQP-VK.renderpass.formats.r16g16_snorm.dont_care.draw
 dEQP-VK.renderpass.formats.r16g16_snorm.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.clear.store.clear
+dEQP-VK.renderpass.formats.r16g16_snorm.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_snorm.input.clear.store.draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16_snorm.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_snorm.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.load.store.clear
+dEQP-VK.renderpass.formats.r16g16_snorm.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_snorm.input.load.store.draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16_snorm.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_snorm.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r16g16_snorm.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_snorm.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16_snorm.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_snorm.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r16g16_uint.clear.clear
 dEQP-VK.renderpass.formats.r16g16_uint.clear.draw
 dEQP-VK.renderpass.formats.r16g16_uint.clear.clear_draw
@@ -97142,6 +98258,42 @@ dEQP-VK.renderpass.formats.r16g16_uint.load.clear_draw
 dEQP-VK.renderpass.formats.r16g16_uint.dont_care.clear
 dEQP-VK.renderpass.formats.r16g16_uint.dont_care.draw
 dEQP-VK.renderpass.formats.r16g16_uint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r16g16_uint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_uint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16_uint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_uint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.load.store.clear
+dEQP-VK.renderpass.formats.r16g16_uint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_uint.input.load.store.draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16_uint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_uint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r16g16_uint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_uint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16_uint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_uint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r16g16_sint.clear.clear
 dEQP-VK.renderpass.formats.r16g16_sint.clear.draw
 dEQP-VK.renderpass.formats.r16g16_sint.clear.clear_draw
@@ -97151,6 +98303,42 @@ dEQP-VK.renderpass.formats.r16g16_sint.load.clear_draw
 dEQP-VK.renderpass.formats.r16g16_sint.dont_care.clear
 dEQP-VK.renderpass.formats.r16g16_sint.dont_care.draw
 dEQP-VK.renderpass.formats.r16g16_sint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r16g16_sint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_sint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16_sint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_sint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.load.store.clear
+dEQP-VK.renderpass.formats.r16g16_sint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_sint.input.load.store.draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16_sint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_sint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r16g16_sint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_sint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16_sint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_sint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r16g16_sfloat.clear.clear
 dEQP-VK.renderpass.formats.r16g16_sfloat.clear.draw
 dEQP-VK.renderpass.formats.r16g16_sfloat.clear.clear_draw
@@ -97160,6 +98348,42 @@ dEQP-VK.renderpass.formats.r16g16_sfloat.load.clear_draw
 dEQP-VK.renderpass.formats.r16g16_sfloat.dont_care.clear
 dEQP-VK.renderpass.formats.r16g16_sfloat.dont_care.draw
 dEQP-VK.renderpass.formats.r16g16_sfloat.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.clear.store.clear
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.clear.store.draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.load.store.clear
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.load.store.draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r16g16b16a16_unorm.clear.clear
 dEQP-VK.renderpass.formats.r16g16b16a16_unorm.clear.draw
 dEQP-VK.renderpass.formats.r16g16b16a16_unorm.clear.clear_draw
@@ -97169,6 +98393,42 @@ dEQP-VK.renderpass.formats.r16g16b16a16_unorm.load.clear_draw
 dEQP-VK.renderpass.formats.r16g16b16a16_unorm.dont_care.clear
 dEQP-VK.renderpass.formats.r16g16b16a16_unorm.dont_care.draw
 dEQP-VK.renderpass.formats.r16g16b16a16_unorm.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.clear.store.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.clear.store.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.load.store.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.load.store.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r16g16b16a16_snorm.clear.clear
 dEQP-VK.renderpass.formats.r16g16b16a16_snorm.clear.draw
 dEQP-VK.renderpass.formats.r16g16b16a16_snorm.clear.clear_draw
@@ -97178,6 +98438,42 @@ dEQP-VK.renderpass.formats.r16g16b16a16_snorm.load.clear_draw
 dEQP-VK.renderpass.formats.r16g16b16a16_snorm.dont_care.clear
 dEQP-VK.renderpass.formats.r16g16b16a16_snorm.dont_care.draw
 dEQP-VK.renderpass.formats.r16g16b16a16_snorm.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.clear.store.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.clear.store.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.load.store.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.load.store.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r16g16b16a16_uint.clear.clear
 dEQP-VK.renderpass.formats.r16g16b16a16_uint.clear.draw
 dEQP-VK.renderpass.formats.r16g16b16a16_uint.clear.clear_draw
@@ -97187,6 +98483,42 @@ dEQP-VK.renderpass.formats.r16g16b16a16_uint.load.clear_draw
 dEQP-VK.renderpass.formats.r16g16b16a16_uint.dont_care.clear
 dEQP-VK.renderpass.formats.r16g16b16a16_uint.dont_care.draw
 dEQP-VK.renderpass.formats.r16g16b16a16_uint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.load.store.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.load.store.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r16g16b16a16_sint.clear.clear
 dEQP-VK.renderpass.formats.r16g16b16a16_sint.clear.draw
 dEQP-VK.renderpass.formats.r16g16b16a16_sint.clear.clear_draw
@@ -97196,6 +98528,42 @@ dEQP-VK.renderpass.formats.r16g16b16a16_sint.load.clear_draw
 dEQP-VK.renderpass.formats.r16g16b16a16_sint.dont_care.clear
 dEQP-VK.renderpass.formats.r16g16b16a16_sint.dont_care.draw
 dEQP-VK.renderpass.formats.r16g16b16a16_sint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.load.store.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.load.store.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.clear.clear
 dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.clear.draw
 dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.clear.clear_draw
@@ -97205,6 +98573,42 @@ dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.load.clear_draw
 dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.dont_care.clear
 dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.dont_care.draw
 dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.clear.store.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.clear.store.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.load.store.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.load.store.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r32_uint.clear.clear
 dEQP-VK.renderpass.formats.r32_uint.clear.draw
 dEQP-VK.renderpass.formats.r32_uint.clear.clear_draw
@@ -97214,6 +98618,42 @@ dEQP-VK.renderpass.formats.r32_uint.load.clear_draw
 dEQP-VK.renderpass.formats.r32_uint.dont_care.clear
 dEQP-VK.renderpass.formats.r32_uint.dont_care.draw
 dEQP-VK.renderpass.formats.r32_uint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32_uint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r32_uint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32_uint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r32_uint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32_uint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r32_uint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32_uint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r32_uint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32_uint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r32_uint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32_uint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32_uint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32_uint.input.load.store.clear
+dEQP-VK.renderpass.formats.r32_uint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32_uint.input.load.store.draw
+dEQP-VK.renderpass.formats.r32_uint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32_uint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r32_uint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32_uint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r32_uint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32_uint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r32_uint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32_uint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32_uint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32_uint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r32_uint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32_uint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r32_uint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32_uint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r32_uint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32_uint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r32_uint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32_uint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r32_uint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32_uint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32_uint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r32_sint.clear.clear
 dEQP-VK.renderpass.formats.r32_sint.clear.draw
 dEQP-VK.renderpass.formats.r32_sint.clear.clear_draw
@@ -97223,6 +98663,42 @@ dEQP-VK.renderpass.formats.r32_sint.load.clear_draw
 dEQP-VK.renderpass.formats.r32_sint.dont_care.clear
 dEQP-VK.renderpass.formats.r32_sint.dont_care.draw
 dEQP-VK.renderpass.formats.r32_sint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32_sint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r32_sint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32_sint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r32_sint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32_sint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r32_sint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32_sint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r32_sint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32_sint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r32_sint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32_sint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32_sint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32_sint.input.load.store.clear
+dEQP-VK.renderpass.formats.r32_sint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32_sint.input.load.store.draw
+dEQP-VK.renderpass.formats.r32_sint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32_sint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r32_sint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32_sint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r32_sint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32_sint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r32_sint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32_sint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32_sint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32_sint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r32_sint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32_sint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r32_sint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32_sint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r32_sint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32_sint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r32_sint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32_sint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r32_sint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32_sint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32_sint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r32_sfloat.clear.clear
 dEQP-VK.renderpass.formats.r32_sfloat.clear.draw
 dEQP-VK.renderpass.formats.r32_sfloat.clear.clear_draw
@@ -97232,6 +98708,42 @@ dEQP-VK.renderpass.formats.r32_sfloat.load.clear_draw
 dEQP-VK.renderpass.formats.r32_sfloat.dont_care.clear
 dEQP-VK.renderpass.formats.r32_sfloat.dont_care.draw
 dEQP-VK.renderpass.formats.r32_sfloat.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.clear.store.clear
+dEQP-VK.renderpass.formats.r32_sfloat.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32_sfloat.input.clear.store.draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r32_sfloat.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32_sfloat.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.load.store.clear
+dEQP-VK.renderpass.formats.r32_sfloat.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32_sfloat.input.load.store.draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r32_sfloat.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32_sfloat.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r32_sfloat.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32_sfloat.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r32_sfloat.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32_sfloat.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r32g32_uint.clear.clear
 dEQP-VK.renderpass.formats.r32g32_uint.clear.draw
 dEQP-VK.renderpass.formats.r32g32_uint.clear.clear_draw
@@ -97241,6 +98753,42 @@ dEQP-VK.renderpass.formats.r32g32_uint.load.clear_draw
 dEQP-VK.renderpass.formats.r32g32_uint.dont_care.clear
 dEQP-VK.renderpass.formats.r32g32_uint.dont_care.draw
 dEQP-VK.renderpass.formats.r32g32_uint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r32g32_uint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_uint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32_uint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_uint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.load.store.clear
+dEQP-VK.renderpass.formats.r32g32_uint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_uint.input.load.store.draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32_uint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_uint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r32g32_uint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_uint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32_uint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_uint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r32g32_sint.clear.clear
 dEQP-VK.renderpass.formats.r32g32_sint.clear.draw
 dEQP-VK.renderpass.formats.r32g32_sint.clear.clear_draw
@@ -97250,6 +98798,42 @@ dEQP-VK.renderpass.formats.r32g32_sint.load.clear_draw
 dEQP-VK.renderpass.formats.r32g32_sint.dont_care.clear
 dEQP-VK.renderpass.formats.r32g32_sint.dont_care.draw
 dEQP-VK.renderpass.formats.r32g32_sint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r32g32_sint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_sint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32_sint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_sint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.load.store.clear
+dEQP-VK.renderpass.formats.r32g32_sint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_sint.input.load.store.draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32_sint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_sint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r32g32_sint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_sint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32_sint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_sint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r32g32_sfloat.clear.clear
 dEQP-VK.renderpass.formats.r32g32_sfloat.clear.draw
 dEQP-VK.renderpass.formats.r32g32_sfloat.clear.clear_draw
@@ -97259,6 +98843,42 @@ dEQP-VK.renderpass.formats.r32g32_sfloat.load.clear_draw
 dEQP-VK.renderpass.formats.r32g32_sfloat.dont_care.clear
 dEQP-VK.renderpass.formats.r32g32_sfloat.dont_care.draw
 dEQP-VK.renderpass.formats.r32g32_sfloat.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.clear.store.clear
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.clear.store.draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.load.store.clear
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.load.store.draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r32g32b32a32_uint.clear.clear
 dEQP-VK.renderpass.formats.r32g32b32a32_uint.clear.draw
 dEQP-VK.renderpass.formats.r32g32b32a32_uint.clear.clear_draw
@@ -97268,6 +98888,42 @@ dEQP-VK.renderpass.formats.r32g32b32a32_uint.load.clear_draw
 dEQP-VK.renderpass.formats.r32g32b32a32_uint.dont_care.clear
 dEQP-VK.renderpass.formats.r32g32b32a32_uint.dont_care.draw
 dEQP-VK.renderpass.formats.r32g32b32a32_uint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.load.store.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.load.store.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r32g32b32a32_sint.clear.clear
 dEQP-VK.renderpass.formats.r32g32b32a32_sint.clear.draw
 dEQP-VK.renderpass.formats.r32g32b32a32_sint.clear.clear_draw
@@ -97277,6 +98933,42 @@ dEQP-VK.renderpass.formats.r32g32b32a32_sint.load.clear_draw
 dEQP-VK.renderpass.formats.r32g32b32a32_sint.dont_care.clear
 dEQP-VK.renderpass.formats.r32g32b32a32_sint.dont_care.draw
 dEQP-VK.renderpass.formats.r32g32b32a32_sint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.load.store.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.load.store.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.clear.clear
 dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.clear.draw
 dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.clear.clear_draw
@@ -97286,6 +98978,42 @@ dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.load.clear_draw
 dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.dont_care.clear
 dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.dont_care.draw
 dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.clear.store.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.clear.store.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.load.store.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.load.store.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.d16_unorm.clear.clear
 dEQP-VK.renderpass.formats.d16_unorm.clear.draw
 dEQP-VK.renderpass.formats.d16_unorm.clear.clear_draw
@@ -97295,6 +99023,42 @@ dEQP-VK.renderpass.formats.d16_unorm.load.clear_draw
 dEQP-VK.renderpass.formats.d16_unorm.dont_care.clear
 dEQP-VK.renderpass.formats.d16_unorm.dont_care.draw
 dEQP-VK.renderpass.formats.d16_unorm.dont_care.clear_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.clear.store.clear
+dEQP-VK.renderpass.formats.d16_unorm.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.d16_unorm.input.clear.store.draw
+dEQP-VK.renderpass.formats.d16_unorm.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.d16_unorm.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.d16_unorm.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.d16_unorm.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.load.store.clear
+dEQP-VK.renderpass.formats.d16_unorm.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.d16_unorm.input.load.store.draw
+dEQP-VK.renderpass.formats.d16_unorm.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.d16_unorm.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.d16_unorm.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.d16_unorm.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.d16_unorm.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.d16_unorm.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.d16_unorm.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.d16_unorm.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.d16_unorm.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.d16_unorm.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.clear.clear
 dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.clear.draw
 dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.clear.clear_draw
@@ -97304,6 +99068,42 @@ dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.load.clear_draw
 dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.dont_care.clear
 dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.dont_care.draw
 dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.dont_care.clear_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.clear.store.clear
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.clear.store.draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.load.store.clear
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.load.store.draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.d32_sfloat.clear.clear
 dEQP-VK.renderpass.formats.d32_sfloat.clear.draw
 dEQP-VK.renderpass.formats.d32_sfloat.clear.clear_draw
@@ -97313,6 +99113,42 @@ dEQP-VK.renderpass.formats.d32_sfloat.load.clear_draw
 dEQP-VK.renderpass.formats.d32_sfloat.dont_care.clear
 dEQP-VK.renderpass.formats.d32_sfloat.dont_care.draw
 dEQP-VK.renderpass.formats.d32_sfloat.dont_care.clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.clear.store.clear
+dEQP-VK.renderpass.formats.d32_sfloat.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.d32_sfloat.input.clear.store.draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.d32_sfloat.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.d32_sfloat.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.load.store.clear
+dEQP-VK.renderpass.formats.d32_sfloat.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.d32_sfloat.input.load.store.draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.d32_sfloat.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.d32_sfloat.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.d32_sfloat.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.d32_sfloat.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.d32_sfloat.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.d32_sfloat.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.d24_unorm_s8_uint.clear.clear
 dEQP-VK.renderpass.formats.d24_unorm_s8_uint.clear.draw
 dEQP-VK.renderpass.formats.d24_unorm_s8_uint.clear.clear_draw
@@ -97322,6 +99158,42 @@ dEQP-VK.renderpass.formats.d24_unorm_s8_uint.load.clear_draw
 dEQP-VK.renderpass.formats.d24_unorm_s8_uint.dont_care.clear
 dEQP-VK.renderpass.formats.d24_unorm_s8_uint.dont_care.draw
 dEQP-VK.renderpass.formats.d24_unorm_s8_uint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.clear.store.clear
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.clear.store.draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.load.store.clear
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.load.store.draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.clear.clear
 dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.clear.draw
 dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.clear.clear_draw
@@ -97331,6 +99203,42 @@ dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.load.clear_draw
 dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.dont_care.clear
 dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.dont_care.draw
 dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.clear.store.clear
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.clear.store.draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.load.store.clear
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.load.store.draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.attachment.1.0
 dEQP-VK.renderpass.attachment.1.1
 dEQP-VK.renderpass.attachment.1.2
@@ -98431,6 +100339,206 @@ dEQP-VK.renderpass.attachment_allocation.grow_shrink.96
 dEQP-VK.renderpass.attachment_allocation.grow_shrink.97
 dEQP-VK.renderpass.attachment_allocation.grow_shrink.98
 dEQP-VK.renderpass.attachment_allocation.grow_shrink.99
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.0
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.1
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.2
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.3
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.4
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.5
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.6
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.7
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.8
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.9
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.10
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.11
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.12
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.13
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.14
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.15
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.16
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.17
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.18
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.19
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.20
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.21
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.22
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.23
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.24
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.25
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.26
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.27
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.28
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.29
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.30
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.31
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.32
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.33
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.34
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.35
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.36
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.37
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.38
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.39
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.40
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.41
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.42
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.43
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.44
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.45
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.46
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.47
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.48
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.49
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.50
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.51
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.52
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.53
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.54
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.55
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.56
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.57
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.58
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.59
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.60
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.61
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.62
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.63
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.64
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.65
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.66
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.67
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.68
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.69
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.70
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.71
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.72
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.73
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.74
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.75
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.76
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.77
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.78
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.79
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.80
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.81
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.82
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.83
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.84
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.85
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.86
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.87
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.88
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.89
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.90
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.91
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.92
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.93
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.94
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.95
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.96
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.97
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.98
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.99
+dEQP-VK.renderpass.attachment_allocation.input_output.0
+dEQP-VK.renderpass.attachment_allocation.input_output.1
+dEQP-VK.renderpass.attachment_allocation.input_output.2
+dEQP-VK.renderpass.attachment_allocation.input_output.3
+dEQP-VK.renderpass.attachment_allocation.input_output.4
+dEQP-VK.renderpass.attachment_allocation.input_output.5
+dEQP-VK.renderpass.attachment_allocation.input_output.6
+dEQP-VK.renderpass.attachment_allocation.input_output.7
+dEQP-VK.renderpass.attachment_allocation.input_output.8
+dEQP-VK.renderpass.attachment_allocation.input_output.9
+dEQP-VK.renderpass.attachment_allocation.input_output.10
+dEQP-VK.renderpass.attachment_allocation.input_output.11
+dEQP-VK.renderpass.attachment_allocation.input_output.12
+dEQP-VK.renderpass.attachment_allocation.input_output.13
+dEQP-VK.renderpass.attachment_allocation.input_output.14
+dEQP-VK.renderpass.attachment_allocation.input_output.15
+dEQP-VK.renderpass.attachment_allocation.input_output.16
+dEQP-VK.renderpass.attachment_allocation.input_output.17
+dEQP-VK.renderpass.attachment_allocation.input_output.18
+dEQP-VK.renderpass.attachment_allocation.input_output.19
+dEQP-VK.renderpass.attachment_allocation.input_output.20
+dEQP-VK.renderpass.attachment_allocation.input_output.21
+dEQP-VK.renderpass.attachment_allocation.input_output.22
+dEQP-VK.renderpass.attachment_allocation.input_output.23
+dEQP-VK.renderpass.attachment_allocation.input_output.24
+dEQP-VK.renderpass.attachment_allocation.input_output.25
+dEQP-VK.renderpass.attachment_allocation.input_output.26
+dEQP-VK.renderpass.attachment_allocation.input_output.27
+dEQP-VK.renderpass.attachment_allocation.input_output.28
+dEQP-VK.renderpass.attachment_allocation.input_output.29
+dEQP-VK.renderpass.attachment_allocation.input_output.30
+dEQP-VK.renderpass.attachment_allocation.input_output.31
+dEQP-VK.renderpass.attachment_allocation.input_output.32
+dEQP-VK.renderpass.attachment_allocation.input_output.33
+dEQP-VK.renderpass.attachment_allocation.input_output.34
+dEQP-VK.renderpass.attachment_allocation.input_output.35
+dEQP-VK.renderpass.attachment_allocation.input_output.36
+dEQP-VK.renderpass.attachment_allocation.input_output.37
+dEQP-VK.renderpass.attachment_allocation.input_output.38
+dEQP-VK.renderpass.attachment_allocation.input_output.39
+dEQP-VK.renderpass.attachment_allocation.input_output.40
+dEQP-VK.renderpass.attachment_allocation.input_output.41
+dEQP-VK.renderpass.attachment_allocation.input_output.42
+dEQP-VK.renderpass.attachment_allocation.input_output.43
+dEQP-VK.renderpass.attachment_allocation.input_output.44
+dEQP-VK.renderpass.attachment_allocation.input_output.45
+dEQP-VK.renderpass.attachment_allocation.input_output.46
+dEQP-VK.renderpass.attachment_allocation.input_output.47
+dEQP-VK.renderpass.attachment_allocation.input_output.48
+dEQP-VK.renderpass.attachment_allocation.input_output.49
+dEQP-VK.renderpass.attachment_allocation.input_output.50
+dEQP-VK.renderpass.attachment_allocation.input_output.51
+dEQP-VK.renderpass.attachment_allocation.input_output.52
+dEQP-VK.renderpass.attachment_allocation.input_output.53
+dEQP-VK.renderpass.attachment_allocation.input_output.54
+dEQP-VK.renderpass.attachment_allocation.input_output.55
+dEQP-VK.renderpass.attachment_allocation.input_output.56
+dEQP-VK.renderpass.attachment_allocation.input_output.57
+dEQP-VK.renderpass.attachment_allocation.input_output.58
+dEQP-VK.renderpass.attachment_allocation.input_output.59
+dEQP-VK.renderpass.attachment_allocation.input_output.60
+dEQP-VK.renderpass.attachment_allocation.input_output.61
+dEQP-VK.renderpass.attachment_allocation.input_output.62
+dEQP-VK.renderpass.attachment_allocation.input_output.63
+dEQP-VK.renderpass.attachment_allocation.input_output.64
+dEQP-VK.renderpass.attachment_allocation.input_output.65
+dEQP-VK.renderpass.attachment_allocation.input_output.66
+dEQP-VK.renderpass.attachment_allocation.input_output.67
+dEQP-VK.renderpass.attachment_allocation.input_output.68
+dEQP-VK.renderpass.attachment_allocation.input_output.69
+dEQP-VK.renderpass.attachment_allocation.input_output.70
+dEQP-VK.renderpass.attachment_allocation.input_output.71
+dEQP-VK.renderpass.attachment_allocation.input_output.72
+dEQP-VK.renderpass.attachment_allocation.input_output.73
+dEQP-VK.renderpass.attachment_allocation.input_output.74
+dEQP-VK.renderpass.attachment_allocation.input_output.75
+dEQP-VK.renderpass.attachment_allocation.input_output.76
+dEQP-VK.renderpass.attachment_allocation.input_output.77
+dEQP-VK.renderpass.attachment_allocation.input_output.78
+dEQP-VK.renderpass.attachment_allocation.input_output.79
+dEQP-VK.renderpass.attachment_allocation.input_output.80
+dEQP-VK.renderpass.attachment_allocation.input_output.81
+dEQP-VK.renderpass.attachment_allocation.input_output.82
+dEQP-VK.renderpass.attachment_allocation.input_output.83
+dEQP-VK.renderpass.attachment_allocation.input_output.84
+dEQP-VK.renderpass.attachment_allocation.input_output.85
+dEQP-VK.renderpass.attachment_allocation.input_output.86
+dEQP-VK.renderpass.attachment_allocation.input_output.87
+dEQP-VK.renderpass.attachment_allocation.input_output.88
+dEQP-VK.renderpass.attachment_allocation.input_output.89
+dEQP-VK.renderpass.attachment_allocation.input_output.90
+dEQP-VK.renderpass.attachment_allocation.input_output.91
+dEQP-VK.renderpass.attachment_allocation.input_output.92
+dEQP-VK.renderpass.attachment_allocation.input_output.93
+dEQP-VK.renderpass.attachment_allocation.input_output.94
+dEQP-VK.renderpass.attachment_allocation.input_output.95
+dEQP-VK.renderpass.attachment_allocation.input_output.96
+dEQP-VK.renderpass.attachment_allocation.input_output.97
+dEQP-VK.renderpass.attachment_allocation.input_output.98
+dEQP-VK.renderpass.attachment_allocation.input_output.99
 dEQP-VK.ubo.2_level_array.std140.float_vertex
 dEQP-VK.ubo.2_level_array.std140.float_fragment
 dEQP-VK.ubo.2_level_array.std140.float_both
index efb9d60..4b3720d 100644 (file)
@@ -24,6 +24,7 @@
 #include "vktRenderPassTests.hpp"
 
 #include "vktTestCaseUtil.hpp"
+#include "vktTestGroupUtil.hpp"
 
 #include "vkDefs.hpp"
 #include "vkDeviceUtil.hpp"
 #include "vkStrUtil.hpp"
 #include "vkTypeUtil.hpp"
 
-#include "tcuTestLog.hpp"
-#include "tcuResultCollector.hpp"
-#include "tcuFormatUtil.hpp"
-#include "tcuTextureUtil.hpp"
 #include "tcuFloat.hpp"
+#include "tcuFormatUtil.hpp"
 #include "tcuMaybe.hpp"
+#include "tcuResultCollector.hpp"
+#include "tcuTestLog.hpp"
+#include "tcuTextureUtil.hpp"
 #include "tcuVectorUtil.hpp"
 
-#include "deUniquePtr.hpp"
+#include "deRandom.hpp"
+#include "deSTLUtil.hpp"
 #include "deSharedPtr.hpp"
 #include "deStringUtil.hpp"
-#include "deSTLUtil.hpp"
-#include "deRandom.hpp"
+#include "deUniquePtr.hpp"
 
 #include <limits>
+#include <set>
+#include <string>
+#include <vector>
 
 using namespace vk;
 
-using tcu::Maybe;
-using tcu::nothing;
-using tcu::just;
-using tcu::TestLog;
-using tcu::Vec2;
+using tcu::BVec4;
 using tcu::IVec2;
-using tcu::UVec2;
 using tcu::IVec4;
+using tcu::UVec2;
 using tcu::UVec4;
+using tcu::Vec2;
 using tcu::Vec4;
-using tcu::BVec4;
+
+using tcu::Maybe;
+using tcu::just;
+using tcu::nothing;
+
 using tcu::ConstPixelBufferAccess;
 using tcu::PixelBufferAccess;
 
+using tcu::TestLog;
+
 using de::UniquePtr;
 
-using std::vector;
+using std::pair;
+using std::set;
 using std::string;
+using std::vector;
 
 namespace vkt
 {
 namespace
 {
-enum
+enum BoolOp
 {
-       STENCIL_VALUE = 84u,
-       // Limit integer values that are representable as floats
-       MAX_INTEGER_VALUE = ((1u<<22u)-1u)
+       BOOLOP_AND,
+       BOOLOP_OR,
+       BOOLOP_EQ,
+       BOOLOP_NEQ
 };
 
+const char* boolOpToString (BoolOp op)
+{
+       switch (op)
+       {
+               case BOOLOP_OR:
+                       return "||";
+
+               case BOOLOP_AND:
+                       return "&&";
+
+               case BOOLOP_EQ:
+                       return "==";
+
+               case BOOLOP_NEQ:
+                       return "!=";
+
+               default:
+                       DE_FATAL("Unknown boolean operation.");
+                       return DE_NULL;
+       }
+}
+
+bool performBoolOp (BoolOp op, bool a, bool b)
+{
+       switch (op)
+       {
+               case BOOLOP_OR:
+                       return a || b;
+
+               case BOOLOP_AND:
+                       return a && b;
+
+               case BOOLOP_EQ:
+                       return a == b;
+
+               case BOOLOP_NEQ:
+                       return a != b;
+
+               default:
+                       DE_FATAL("Unknown boolean operation.");
+                       return false;
+       }
+}
+
+BoolOp boolOpFromIndex (size_t index)
+{
+       const BoolOp ops[] =
+       {
+               BOOLOP_OR,
+               BOOLOP_AND,
+               BOOLOP_EQ,
+               BOOLOP_NEQ
+       };
+
+       return ops[index % DE_LENGTH_OF_ARRAY(ops)];
+}
+
 // Utility functions using flattened structs
 Move<VkFence> createFence (const DeviceInterface& vk, VkDevice device, VkFenceCreateFlags flags)
 {
@@ -279,7 +346,7 @@ void beginCommandBuffer (const DeviceInterface&                     vk,
                                                 VkQueryControlFlags                    pInheritanceInfo_queryFlags,
                                                 VkQueryPipelineStatisticFlags  pInheritanceInfo_pipelineStatistics)
 {
-       const VkCommandBufferInheritanceInfo    pInheritanceInfo        =
+       const VkCommandBufferInheritanceInfo pInheritanceInfo =
        {
                VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO,
                DE_NULL,
@@ -290,7 +357,7 @@ void beginCommandBuffer (const DeviceInterface&                     vk,
                pInheritanceInfo_queryFlags,
                pInheritanceInfo_pipelineStatistics,
        };
-       const VkCommandBufferBeginInfo                  pBeginInfo                      =
+       const VkCommandBufferBeginInfo pBeginInfo =
        {
                VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
                DE_NULL,
@@ -433,7 +500,7 @@ public:
                                                                                                                                         const vector<AttachmentReference>&     colorAttachments,
                                                                                                                                         const vector<AttachmentReference>&     resolveAttachments,
                                                                                                                                         AttachmentReference                            depthStencilAttachment,
-                                                                                                                                        const vector<AttachmentReference>&     preserveAttachments)
+                                                                                                                                        const vector<deUint32>&                        preserveAttachments)
                : m_pipelineBindPoint           (pipelineBindPoint)
                , m_flags                                       (flags)
                , m_inputAttachments            (inputAttachments)
@@ -450,7 +517,7 @@ public:
        const vector<AttachmentReference>&      getColorAttachments                     (void) const { return m_colorAttachments;               }
        const vector<AttachmentReference>&      getResolveAttachments           (void) const { return m_resolveAttachments;             }
        const AttachmentReference&                      getDepthStencilAttachment       (void) const { return m_depthStencilAttachment; }
-       const vector<AttachmentReference>&      getPreserveAttachments          (void) const { return m_preserveAttachments;    }
+       const vector<deUint32>&                         getPreserveAttachments          (void) const { return m_preserveAttachments;    }
 
 private:
        VkPipelineBindPoint                                     m_pipelineBindPoint;
@@ -461,7 +528,7 @@ private:
        vector<AttachmentReference>                     m_resolveAttachments;
        AttachmentReference                                     m_depthStencilAttachment;
 
-       vector<AttachmentReference>                     m_preserveAttachments;
+       vector<deUint32>                                        m_preserveAttachments;
 };
 
 class SubpassDependency
@@ -515,17 +582,17 @@ private:
 class Attachment
 {
 public:
-                                               Attachment                      (VkFormat                               format,
-                                                                                        VkSampleCountFlagBits  samples,
+                                                       Attachment                      (VkFormat                               format,
+                                                                                                VkSampleCountFlagBits  samples,
 
-                                                                                        VkAttachmentLoadOp             loadOp,
-                                                                                        VkAttachmentStoreOp    storeOp,
+                                                                                                VkAttachmentLoadOp             loadOp,
+                                                                                                VkAttachmentStoreOp    storeOp,
 
-                                                                                        VkAttachmentLoadOp             stencilLoadOp,
-                                                                                        VkAttachmentStoreOp    stencilStoreOp,
+                                                                                                VkAttachmentLoadOp             stencilLoadOp,
+                                                                                                VkAttachmentStoreOp    stencilStoreOp,
 
-                                                                                        VkImageLayout                  initialLayout,
-                                                                                        VkImageLayout                  finalLayout)
+                                                                                                VkImageLayout                  initialLayout,
+                                                                                                VkImageLayout                  finalLayout)
                : m_format                      (format)
                , m_samples                     (samples)
 
@@ -610,14 +677,14 @@ struct TestConfig
                IMAGEMEMORY_LAZY                = (1<<1)
        };
 
-       TestConfig (const RenderPass&   renderPass_,
-                               RenderTypes                     renderTypes_,
-                               CommandBufferTypes      commandBufferTypes_,
-                               ImageMemory                     imageMemory_,
-                               const UVec2&            targetSize_,
-                               const UVec2&            renderPos_,
-                               const UVec2&            renderSize_,
-                               deUint32                        seed_)
+                                               TestConfig (const RenderPass&   renderPass_,
+                                                                       RenderTypes                     renderTypes_,
+                                                                       CommandBufferTypes      commandBufferTypes_,
+                                                                       ImageMemory                     imageMemory_,
+                                                                       const UVec2&            targetSize_,
+                                                                       const UVec2&            renderPos_,
+                                                                       const UVec2&            renderSize_,
+                                                                       deUint32                        seed_)
                : renderPass                    (renderPass_)
                , renderTypes                   (renderTypes_)
                , commandBufferTypes    (commandBufferTypes_)
@@ -694,16 +761,16 @@ void logRenderPassInfo (TestLog&                  log,
                        const vector<AttachmentReference>&      inputAttachments        = subpass.getInputAttachments();
                        const vector<AttachmentReference>&      colorAttachments        = subpass.getColorAttachments();
                        const vector<AttachmentReference>&      resolveAttachments      = subpass.getResolveAttachments();
-                       const vector<AttachmentReference>&      preserveAttachments     = subpass.getPreserveAttachments();
+                       const vector<deUint32>&                         preserveAttachments     = subpass.getPreserveAttachments();
 
                        if (!inputAttachments.empty())
                        {
-                               const tcu::ScopedLogSection             inputAttachmentsSection (log, "Inputs", "Inputs");
+                               const tcu::ScopedLogSection     inputAttachmentsSection (log, "Inputs", "Inputs");
 
                                for (size_t inputNdx = 0; inputNdx < inputAttachments.size(); inputNdx++)
                                {
-                                       const tcu::ScopedLogSection             inputAttachmentSection  (log, "Input" + de::toString(inputNdx), "Input " + de::toString(inputNdx));
-                                       const AttachmentReference&              inputAttachment                 = inputAttachments[inputNdx];
+                                       const tcu::ScopedLogSection     inputAttachmentSection  (log, "Input" + de::toString(inputNdx), "Input " + de::toString(inputNdx));
+                                       const AttachmentReference&      inputAttachment                 = inputAttachments[inputNdx];
 
                                        log << TestLog::Message << "Attachment: " << inputAttachment.getAttachment() << TestLog::EndMessage;
                                        log << TestLog::Message << "Layout: " << inputAttachment.getImageLayout() << TestLog::EndMessage;
@@ -712,8 +779,8 @@ void logRenderPassInfo (TestLog&                    log,
 
                        if (subpass.getDepthStencilAttachment().getAttachment() != VK_ATTACHMENT_UNUSED)
                        {
-                               const tcu::ScopedLogSection             depthStencilAttachmentSection   (log, "DepthStencil", "DepthStencil");
-                               const AttachmentReference&              depthStencilAttachment                  = subpass.getDepthStencilAttachment();
+                               const tcu::ScopedLogSection     depthStencilAttachmentSection   (log, "DepthStencil", "DepthStencil");
+                               const AttachmentReference&      depthStencilAttachment                  = subpass.getDepthStencilAttachment();
 
                                log << TestLog::Message << "Attachment: " << depthStencilAttachment.getAttachment() << TestLog::EndMessage;
                                log << TestLog::Message << "Layout: " << depthStencilAttachment.getImageLayout() << TestLog::EndMessage;
@@ -721,12 +788,12 @@ void logRenderPassInfo (TestLog&                  log,
 
                        if (!colorAttachments.empty())
                        {
-                               const tcu::ScopedLogSection             colorAttachmentsSection (log, "Colors", "Colors");
+                               const tcu::ScopedLogSection     colorAttachmentsSection (log, "Colors", "Colors");
 
                                for (size_t colorNdx = 0; colorNdx < colorAttachments.size(); colorNdx++)
                                {
-                                       const tcu::ScopedLogSection             colorAttachmentSection  (log, "Color" + de::toString(colorNdx), "Color " + de::toString(colorNdx));
-                                       const AttachmentReference&              colorAttachment                 = colorAttachments[colorNdx];
+                                       const tcu::ScopedLogSection     colorAttachmentSection  (log, "Color" + de::toString(colorNdx), "Color " + de::toString(colorNdx));
+                                       const AttachmentReference&      colorAttachment                 = colorAttachments[colorNdx];
 
                                        log << TestLog::Message << "Attachment: " << colorAttachment.getAttachment() << TestLog::EndMessage;
                                        log << TestLog::Message << "Layout: " << colorAttachment.getImageLayout() << TestLog::EndMessage;
@@ -735,12 +802,12 @@ void logRenderPassInfo (TestLog&                  log,
 
                        if (!resolveAttachments.empty())
                        {
-                               const tcu::ScopedLogSection             resolveAttachmentsSection       (log, "Resolves", "Resolves");
+                               const tcu::ScopedLogSection     resolveAttachmentsSection       (log, "Resolves", "Resolves");
 
                                for (size_t resolveNdx = 0; resolveNdx < resolveAttachments.size(); resolveNdx++)
                                {
-                                       const tcu::ScopedLogSection             resolveAttachmentSection        (log, "Resolve" + de::toString(resolveNdx), "Resolve " + de::toString(resolveNdx));
-                                       const AttachmentReference&              resolveAttachment                       = resolveAttachments[resolveNdx];
+                                       const tcu::ScopedLogSection     resolveAttachmentSection        (log, "Resolve" + de::toString(resolveNdx), "Resolve " + de::toString(resolveNdx));
+                                       const AttachmentReference&      resolveAttachment                       = resolveAttachments[resolveNdx];
 
                                        log << TestLog::Message << "Attachment: " << resolveAttachment.getAttachment() << TestLog::EndMessage;
                                        log << TestLog::Message << "Layout: " << resolveAttachment.getImageLayout() << TestLog::EndMessage;
@@ -749,15 +816,14 @@ void logRenderPassInfo (TestLog&                  log,
 
                        if (!preserveAttachments.empty())
                        {
-                               const tcu::ScopedLogSection             preserveAttachmentsSection      (log, "Preserves", "Preserves");
+                               const tcu::ScopedLogSection     preserveAttachmentsSection      (log, "Preserves", "Preserves");
 
                                for (size_t preserveNdx = 0; preserveNdx < preserveAttachments.size(); preserveNdx++)
                                {
-                                       const tcu::ScopedLogSection             preserveAttachmentSection       (log, "Preserve" + de::toString(preserveNdx), "Preserve " + de::toString(preserveNdx));
-                                       const AttachmentReference&              preserveAttachment                      = preserveAttachments[preserveNdx];
+                                       const tcu::ScopedLogSection     preserveAttachmentSection       (log, "Preserve" + de::toString(preserveNdx), "Preserve " + de::toString(preserveNdx));
+                                       const deUint32                          preserveAttachment                      = preserveAttachments[preserveNdx];
 
-                                       log << TestLog::Message << "Attachment: " << preserveAttachment.getAttachment() << TestLog::EndMessage;
-                                       log << TestLog::Message << "Layout: " << preserveAttachment.getImageLayout() << TestLog::EndMessage;
+                                       log << TestLog::Message << "Attachment: " << preserveAttachment << TestLog::EndMessage;
                                }
                        }
                }
@@ -887,29 +953,24 @@ VkClearColorValue randomColorClearValue (const Attachment& attachment, de::Rando
        {
                case tcu::TEXTURECHANNELCLASS_SIGNED_INTEGER:
                {
-                       const tcu::IVec4 valueMin = tcu::getFormatMinIntValue(format);
-                       const tcu::IVec4 valueMax = tcu::getFormatMaxIntValue(format);
-
                        for (int ndx = 0; ndx < 4; ndx++)
                        {
                                if (!channelMask[ndx])
                                        clearColor.int32[ndx] = std::numeric_limits<deInt32>::min();
                                else
-                                       clearColor.uint32[ndx] = rng.getInt(valueMin[ndx], valueMax[ndx]);
+                                       clearColor.uint32[ndx] = rng.getBool() ? 1u : 0u;
                        }
                        break;
                }
 
                case tcu::TEXTURECHANNELCLASS_UNSIGNED_INTEGER:
                {
-                       const UVec4 valueMax = tcu::getFormatMaxUintValue(format);
-
                        for (int ndx = 0; ndx < 4; ndx++)
                        {
                                if (!channelMask[ndx])
                                        clearColor.uint32[ndx] = std::numeric_limits<deUint32>::max();
                                else
-                                       clearColor.uint32[ndx] = rng.getUint32() % valueMax[ndx];
+                                       clearColor.uint32[ndx] = rng.getBool() ? 1u : 0u;
                        }
                        break;
                }
@@ -918,14 +979,12 @@ VkClearColorValue randomColorClearValue (const Attachment& attachment, de::Rando
                case tcu::TEXTURECHANNELCLASS_UNSIGNED_FIXED_POINT:
                case tcu::TEXTURECHANNELCLASS_FLOATING_POINT:
                {
-                       const tcu::TextureFormatInfo    formatInfo              = tcu::getTextureFormatInfo(format);
-
                        for (int ndx = 0; ndx < 4; ndx++)
                        {
                                if (!channelMask[ndx])
                                        clearColor.float32[ndx] = clearNan;
                                else
-                                       clearColor.float32[ndx] = formatInfo.valueMin[ndx] + rng.getFloat() * (formatInfo.valueMax[ndx] - formatInfo.valueMin[ndx]);
+                                       clearColor.float32[ndx] = rng.getBool() ? 1.0f : 0.0f;
                        }
                        break;
                }
@@ -941,19 +1000,19 @@ VkAttachmentDescription createAttachmentDescription (const Attachment& attachmen
 {
        const VkAttachmentDescription attachmentDescription =
        {
-               0,                                                                                      // flags
+               0,                                                              // flags
 
-               attachment.getFormat(),                                         // format
-               attachment.getSamples(),                                        // samples
+               attachment.getFormat(),                 // format
+               attachment.getSamples(),                // samples
 
-               attachment.getLoadOp(),                                         // loadOp
-               attachment.getStoreOp(),                                        // storeOp
+               attachment.getLoadOp(),                 // loadOp
+               attachment.getStoreOp(),                // storeOp
 
-               attachment.getStencilLoadOp(),                          // stencilLoadOp
-               attachment.getStencilStoreOp(),                         // stencilStoreOp
+               attachment.getStencilLoadOp(),  // stencilLoadOp
+               attachment.getStencilStoreOp(), // stencilStoreOp
 
-               attachment.getInitialLayout(),                          // initialLayout
-               attachment.getFinalLayout(),                            // finalLayout
+               attachment.getInitialLayout(),  // initialLayout
+               attachment.getFinalLayout(),    // finalLayout
        };
 
        return attachmentDescription;
@@ -991,7 +1050,7 @@ VkSubpassDescription createSubpassDescription (const Subpass&                                      subpass,
        depthStencilAttachmentReferences.push_back(createAttachmentReference(subpass.getDepthStencilAttachment()));
 
        for (size_t attachmentNdx = 0; attachmentNdx < subpass.getPreserveAttachments().size(); attachmentNdx++)
-               preserveAttachmentReferences->push_back(subpass.getPreserveAttachments()[attachmentNdx].getAttachment());
+               preserveAttachmentReferences->push_back(subpass.getPreserveAttachments()[attachmentNdx]);
 
        DE_ASSERT(resolveAttachmentReferences.empty() || colorAttachmentReferences.size() == resolveAttachmentReferences.size());
 
@@ -1021,16 +1080,16 @@ VkSubpassDependency createSubpassDependency     (const SubpassDependency& dependency
 {
        const VkSubpassDependency dependency =
        {
-               dependencyInfo.getSrcPass(),                    // srcSubpass;
-               dependencyInfo.getDstPass(),                    // destSubpass;
+               dependencyInfo.getSrcPass(),            // srcSubpass;
+               dependencyInfo.getDstPass(),            // destSubpass;
 
-               dependencyInfo.getSrcStageMask(),               // srcStageMask;
-               dependencyInfo.getDstStageMask(),               // destStageMask;
+               dependencyInfo.getSrcStageMask(),       // srcStageMask;
+               dependencyInfo.getDstStageMask(),       // destStageMask;
 
-               dependencyInfo.getOutputMask(),                 // outputMask;
-               dependencyInfo.getInputMask(),                  // inputMask;
+               dependencyInfo.getOutputMask(),         // outputMask;
+               dependencyInfo.getInputMask(),          // inputMask;
 
-               dependencyInfo.getFlags()                               // dependencyFlags;
+               dependencyInfo.getFlags()                       // dependencyFlags;
        };
 
        return dependency;
@@ -1092,24 +1151,25 @@ Move<VkImage> createAttachmentImage (const DeviceInterface&     vk,
                                                                         VkImageUsageFlags              usageFlags,
                                                                         VkImageLayout                  layout)
 {
-       const VkExtent3D size_                                  = { size.x(), size.y(), 1u };
-       VkImageUsageFlags targetUsageFlags              = 0;
-       const tcu::TextureFormat textureFormat  = mapVkFormat(format);
+       VkImageUsageFlags                       targetUsageFlags        = 0;
+       const tcu::TextureFormat        textureFormat           = mapVkFormat(format);
+
+       DE_ASSERT(!(tcu::hasDepthComponent(vk::mapVkFormat(format).order) || tcu::hasStencilComponent(vk::mapVkFormat(format).order))
+                                       || ((usageFlags & vk::VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT) == 0));
+
+       DE_ASSERT((tcu::hasDepthComponent(vk::mapVkFormat(format).order) || tcu::hasStencilComponent(vk::mapVkFormat(format).order))
+                                       || ((usageFlags & vk::VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT) == 0));
 
        if (tcu::hasDepthComponent(textureFormat.order) || tcu::hasStencilComponent(textureFormat.order))
-       {
                targetUsageFlags |= vk::VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT;
-       }
        else
-       {
                targetUsageFlags |= vk::VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
-       }
 
        return createImage(vk, device,
                                           (VkImageCreateFlags)0,
                                           VK_IMAGE_TYPE_2D,
                                           format,
-                                          size_,
+                                          vk::makeExtent3D(size.x(), size.y(), 1u),
                                           1u /* mipLevels */,
                                           1u /* arraySize */,
                                           samples,
@@ -1160,13 +1220,17 @@ VkClearValue randomClearValue (const Attachment& attachment, de::Random& rng)
                VkClearValue clearValue;
 
                clearValue.depthStencil.depth   = clearNan;
-               clearValue.depthStencil.stencil = 255;
+               clearValue.depthStencil.stencil = 0xCDu;
 
                if (tcu::hasStencilComponent(format.order))
-                       clearValue.depthStencil.stencil = rng.getInt(0, 255);
+                       clearValue.depthStencil.stencil = rng.getBool()
+                                                                                       ? 0xFFu
+                                                                                       : 0x0u;
 
                if (tcu::hasDepthComponent(format.order))
-                       clearValue.depthStencil.depth   = rng.getFloat();
+                       clearValue.depthStencil.depth   = rng.getBool()
+                                                                                       ? 1.0f
+                                                                                       : 0.0f;
 
                return clearValue;
        }
@@ -1183,21 +1247,33 @@ VkClearValue randomClearValue (const Attachment& attachment, de::Random& rng)
 class AttachmentResources
 {
 public:
-       AttachmentResources (const DeviceInterface&             vk,
-                                                VkDevice                                       device,
-                                                Allocator&                                     allocator,
-                                                deUint32                                       queueIndex,
-                                                const UVec2&                           size,
-                                                const Attachment&                      attachmentInfo,
-                                                VkImageUsageFlags                      usageFlags)
+       AttachmentResources (const DeviceInterface&     vk,
+                                                VkDevice                               device,
+                                                Allocator&                             allocator,
+                                                deUint32                               queueIndex,
+                                                const UVec2&                   size,
+                                                const Attachment&              attachmentInfo,
+                                                VkImageUsageFlags              usageFlags)
                : m_image                       (createAttachmentImage(vk, device, queueIndex, size, attachmentInfo.getFormat(), attachmentInfo.getSamples(), usageFlags, VK_IMAGE_LAYOUT_UNDEFINED))
                , m_imageMemory         (createImageMemory(vk, device, allocator, *m_image, ((usageFlags & VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT) != 0)))
                , m_attachmentView      (createImageAttachmentView(vk, device, *m_image, attachmentInfo.getFormat(), getImageAspectFlags(attachmentInfo.getFormat())))
        {
-               if ((usageFlags & VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT) == 0)
+               const tcu::TextureFormat        format                  = mapVkFormat(attachmentInfo.getFormat());
+               const bool                                      isDepthFormat   = tcu::hasDepthComponent(format.order);
+               const bool                                      isStencilFormat = tcu::hasStencilComponent(format.order);
+
+               if (isDepthFormat && isStencilFormat)
                {
-                       const tcu::TextureFormat format = mapVkFormat(attachmentInfo.getFormat());
+                       m_depthInputAttachmentView              = createImageAttachmentView(vk, device, *m_image, attachmentInfo.getFormat(), VK_IMAGE_ASPECT_DEPTH_BIT);
+                       m_stencilInputAttachmentView    = createImageAttachmentView(vk, device, *m_image, attachmentInfo.getFormat(), VK_IMAGE_ASPECT_STENCIL_BIT);
+
+                       m_inputAttachmentViews = std::make_pair(*m_depthInputAttachmentView, *m_stencilInputAttachmentView);
+               }
+               else
+                       m_inputAttachmentViews = std::make_pair(*m_attachmentView, (vk::VkImageView)0u);
 
+               if ((usageFlags & VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT) == 0)
+               {
                        if (tcu::hasDepthComponent(format.order) && tcu::hasStencilComponent(format.order))
                        {
                                const tcu::TextureFormat        depthFormat             = getDepthCopyFormat(attachmentInfo.getFormat());
@@ -1228,6 +1304,11 @@ public:
                }
        }
 
+       const pair<VkImageView, VkImageView>& getInputAttachmentViews (void) const
+       {
+               return m_inputAttachmentViews;
+       }
+
        ~AttachmentResources (void)
        {
        }
@@ -1283,6 +1364,10 @@ private:
        const UniquePtr<Allocation>             m_imageMemory;
        const Unique<VkImageView>               m_attachmentView;
 
+       Move<VkImageView>                               m_depthInputAttachmentView;
+       Move<VkImageView>                               m_stencilInputAttachmentView;
+       pair<VkImageView, VkImageView>  m_inputAttachmentViews;
+
        Move<VkBuffer>                                  m_buffer;
        VkDeviceSize                                    m_bufferSize;
        de::MovePtr<Allocation>                 m_bufferMemory;
@@ -1333,24 +1418,24 @@ VkImageAspectFlagBits getPrimaryImageAspect (tcu::TextureFormat::ChannelOrder or
 class RenderQuad
 {
 public:
-       RenderQuad (const Vec4& posA, const Vec4& posB)
+                                       RenderQuad                      (const Vec2& posA, const Vec2& posB)
                : m_vertices(6)
        {
                m_vertices[0] = posA;
-               m_vertices[1] = Vec4(posA[0], posB[1], posA[2], posA[3]);
+               m_vertices[1] = Vec2(posA[0], posB[1]);
                m_vertices[2] = posB;
 
                m_vertices[3] = posB;
-               m_vertices[4] = Vec4(posB[0], posA[1], posB[2], posA[3]);
+               m_vertices[4] = Vec2(posB[0], posA[1]);
                m_vertices[5] = posA;
        }
 
-       const Vec4&             getCornerA                      (void) const
+       const Vec2&             getCornerA                      (void) const
        {
                return m_vertices[0];
        }
 
-       const Vec4&             getCornerB                      (void) const
+       const Vec2&             getCornerB                      (void) const
        {
                return m_vertices[2];
        }
@@ -1362,42 +1447,42 @@ public:
 
        size_t                  getVertexDataSize       (void) const
        {
-               return sizeof(Vec4) * m_vertices.size();
+               return sizeof(Vec2) * m_vertices.size();
        }
 
 private:
-       vector<Vec4>    m_vertices;
+       vector<Vec2>    m_vertices;
 };
 
 class ColorClear
 {
 public:
-       ColorClear      (const UVec2&                           offset,
-                                const UVec2&                           size,
-                                const VkClearColorValue&       color)
+                                                               ColorClear      (const UVec2&                           offset,
+                                                                                        const UVec2&                           size,
+                                                                                        const VkClearColorValue&       color)
                : m_offset      (offset)
                , m_size        (size)
                , m_color       (color)
        {
        }
 
-       const UVec2&                            getOffset               (void) const { return m_offset;         }
-       const UVec2&                            getSize                 (void) const { return m_size;           }
-       const VkClearColorValue&        getColor                (void) const { return m_color;          }
+       const UVec2&                            getOffset       (void) const { return m_offset; }
+       const UVec2&                            getSize         (void) const { return m_size;   }
+       const VkClearColorValue&        getColor        (void) const { return m_color;  }
 
 private:
-       UVec2                           m_offset;
-       UVec2                           m_size;
-       VkClearColorValue       m_color;
+       UVec2                                           m_offset;
+       UVec2                                           m_size;
+       VkClearColorValue                       m_color;
 };
 
 class DepthStencilClear
 {
 public:
-       DepthStencilClear       (const UVec2&                           offset,
-                                                const UVec2&                           size,
-                                                float                                          depth,
-                                                deUint32                                       stencil)
+                                       DepthStencilClear       (const UVec2&   offset,
+                                                                                const UVec2&   size,
+                                                                                float                  depth,
+                                                                                deUint32               stencil)
                : m_offset      (offset)
                , m_size        (size)
                , m_depth       (depth)
@@ -1405,33 +1490,33 @@ public:
        {
        }
 
-       const UVec2&            getOffset               (void) const { return m_offset;         }
-       const UVec2&            getSize                 (void) const { return m_size;           }
-       float                           getDepth                (void) const { return m_depth;          }
-       deUint32                        getStencil              (void) const { return m_stencil;        }
+       const UVec2&    getOffset                       (void) const { return m_offset;         }
+       const UVec2&    getSize                         (void) const { return m_size;           }
+       float                   getDepth                        (void) const { return m_depth;          }
+       deUint32                getStencil                      (void) const { return m_stencil;        }
 
 private:
-       UVec2                           m_offset;
-       UVec2                           m_size;
+       const UVec2             m_offset;
+       const UVec2             m_size;
 
-       float                           m_depth;
-       deUint32                        m_stencil;
+       const float             m_depth;
+       const deUint32  m_stencil;
 };
 
 class SubpassRenderInfo
 {
 public:
-       SubpassRenderInfo       (const RenderPass&                                      renderPass,
-                                                deUint32                                                       subpassIndex,
+                                                                       SubpassRenderInfo                               (const RenderPass&                                      renderPass,
+                                                                                                                                        deUint32                                                       subpassIndex,
 
-                                                bool                                                           isSecondary_,
+                                                                                                                                        bool                                                           isSecondary_,
 
-                                                const UVec2&                                           viewportOffset,
-                                                const UVec2&                                           viewportSize,
+                                                                                                                                        const UVec2&                                           viewportOffset,
+                                                                                                                                        const UVec2&                                           viewportSize,
 
-                                                const Maybe<RenderQuad>&                       renderQuad,
-                                                const vector<ColorClear>&                      colorClears,
-                                                const Maybe<DepthStencilClear>&        depthStencilClear)
+                                                                                                                                        const Maybe<RenderQuad>&                       renderQuad,
+                                                                                                                                        const vector<ColorClear>&                      colorClears,
+                                                                                                                                        const Maybe<DepthStencilClear>&        depthStencilClear)
                : m_viewportOffset              (viewportOffset)
                , m_viewportSize                (viewportSize)
                , m_subpassIndex                (subpassIndex)
@@ -1441,6 +1526,7 @@ public:
                , m_colorClears                 (colorClears)
                , m_depthStencilClear   (depthStencilClear)
                , m_colorAttachments    (renderPass.getSubpasses()[subpassIndex].getColorAttachments())
+               , m_inputAttachments    (renderPass.getSubpasses()[subpassIndex].getInputAttachments())
        {
                for (deUint32 attachmentNdx = 0; attachmentNdx < (deUint32)m_colorAttachments.size(); attachmentNdx++)
                        m_colorAttachmentInfo.push_back(renderPass.getAttachments()[m_colorAttachments[attachmentNdx].getAttachment()]);
@@ -1452,41 +1538,47 @@ public:
                }
        }
 
-       const UVec2&                                            getViewportOffset                               (void) const { return m_viewportOffset;         }
-       const UVec2&                                            getViewportSize                                 (void) const { return m_viewportSize;           }
+       const UVec2&                                    getViewportOffset                               (void) const { return m_viewportOffset;         }
+       const UVec2&                                    getViewportSize                                 (void) const { return m_viewportSize;           }
 
-       deUint32                                                        getSubpassIndex                                 (void) const { return m_subpassIndex;           }
-       bool                                                            isSecondary                                             (void) const { return m_isSecondary;            }
+       deUint32                                                getSubpassIndex                                 (void) const { return m_subpassIndex;           }
+       bool                                                    isSecondary                                             (void) const { return m_isSecondary;            }
 
-       const Maybe<RenderQuad>&                        getRenderQuad                                   (void) const { return m_renderQuad;                     }
-       const vector<ColorClear>&                       getColorClears                                  (void) const { return m_colorClears;            }
-       const Maybe<DepthStencilClear>&         getDepthStencilClear                    (void) const { return m_depthStencilClear;      }
+       const Maybe<RenderQuad>&                getRenderQuad                                   (void) const { return m_renderQuad;                     }
+       const vector<ColorClear>&               getColorClears                                  (void) const { return m_colorClears;            }
+       const Maybe<DepthStencilClear>& getDepthStencilClear                    (void) const { return m_depthStencilClear;      }
+
+       deUint32                                                getInputAttachmentCount                 (void) const { return (deUint32)m_inputAttachments.size(); }
+       deUint32                                                getInputAttachmentIndex                 (deUint32 attachmentNdx) const { return m_inputAttachments[attachmentNdx].getAttachment(); }
+
+       deUint32                                                getColorAttachmentCount                 (void) const { return (deUint32)m_colorAttachments.size(); }
+       VkImageLayout                                   getColorAttachmentLayout                (deUint32 attachmentNdx) const { return m_colorAttachments[attachmentNdx].getImageLayout(); }
+       deUint32                                                getColorAttachmentIndex                 (deUint32 attachmentNdx) const { return m_colorAttachments[attachmentNdx].getAttachment(); }
+       const Attachment&                               getColorAttachment                              (deUint32 attachmentNdx) const { return m_colorAttachmentInfo[attachmentNdx]; }
+       Maybe<VkImageLayout>                    getDepthStencilAttachmentLayout (void) const { return m_depthStencilAttachment ? tcu::just(m_depthStencilAttachment->getImageLayout()) : tcu::nothing<VkImageLayout>(); }
+       Maybe<deUint32>                                 getDepthStencilAttachmentIndex  (void) const { return m_depthStencilAttachment ? tcu::just(m_depthStencilAttachment->getAttachment()) : tcu::nothing<deUint32>(); };
+       const Maybe<Attachment>&                getDepthStencilAttachment               (void) const { return m_depthStencilAttachmentInfo; }
+       VkSubpassDescriptionFlags               getSubpassFlags                                 (void) const { return m_flags; }
 
-       deUint32                                                        getColorAttachmentCount                 (void) const { return (deUint32)m_colorAttachments.size(); }
-       VkImageLayout                                           getColorAttachmentLayout                (deUint32 attachmentNdx) const { return m_colorAttachments[attachmentNdx].getImageLayout(); }
-       deUint32                                                        getColorAttachmentIndex                 (deUint32 attachmentNdx) const { return m_colorAttachments[attachmentNdx].getAttachment(); }
-       const Attachment&                                       getColorAttachment                              (deUint32 attachmentNdx) const { return m_colorAttachmentInfo[attachmentNdx]; }
-       Maybe<VkImageLayout>                            getDepthStencilAttachmentLayout (void) const { return m_depthStencilAttachment ? tcu::just(m_depthStencilAttachment->getImageLayout()) : tcu::nothing<VkImageLayout>(); }
-       Maybe<deUint32>                                         getDepthStencilAttachmentIndex  (void) const { return m_depthStencilAttachment ? tcu::just(m_depthStencilAttachment->getAttachment()) : tcu::nothing<deUint32>(); };
-       const Maybe<Attachment>&                        getDepthStencilAttachment               (void) const { return m_depthStencilAttachmentInfo; }
-       VkSubpassDescriptionFlags                       getSubpassFlags                                 (void) const { return m_flags; }
 private:
-       UVec2                                                           m_viewportOffset;
-       UVec2                                                           m_viewportSize;
+       UVec2                                                   m_viewportOffset;
+       UVec2                                                   m_viewportSize;
 
-       deUint32                                                        m_subpassIndex;
-       bool                                                            m_isSecondary;
-       VkSubpassDescriptionFlags                       m_flags;
+       deUint32                                                m_subpassIndex;
+       bool                                                    m_isSecondary;
+       VkSubpassDescriptionFlags               m_flags;
 
-       Maybe<RenderQuad>                                       m_renderQuad;
-       vector<ColorClear>                                      m_colorClears;
-       Maybe<DepthStencilClear>                        m_depthStencilClear;
+       Maybe<RenderQuad>                               m_renderQuad;
+       vector<ColorClear>                              m_colorClears;
+       Maybe<DepthStencilClear>                m_depthStencilClear;
 
-       vector<AttachmentReference>                     m_colorAttachments;
-       vector<Attachment>                                      m_colorAttachmentInfo;
+       vector<AttachmentReference>             m_colorAttachments;
+       vector<Attachment>                              m_colorAttachmentInfo;
 
-       Maybe<AttachmentReference>                      m_depthStencilAttachment;
-       Maybe<Attachment>                                       m_depthStencilAttachmentInfo;
+       Maybe<AttachmentReference>              m_depthStencilAttachment;
+       Maybe<Attachment>                               m_depthStencilAttachmentInfo;
+
+       vector<AttachmentReference>             m_inputAttachments;
 };
 
 Move<VkPipeline> createSubpassPipeline (const DeviceInterface&         vk,
@@ -1510,7 +1602,7 @@ Move<VkPipeline> createSubpassPipeline (const DeviceInterface&            vk,
 
        for (deUint32 attachmentNdx = 0; attachmentNdx < renderInfo.getColorAttachmentCount(); attachmentNdx++)
        {
-               const Attachment&                       attachment              = renderInfo.getColorAttachment(attachmentNdx);
+               const Attachment&       attachment      = renderInfo.getColorAttachment(attachmentNdx);
 
                DE_ASSERT(!rasterSamples || *rasterSamples == attachment.getSamples());
 
@@ -1569,7 +1661,7 @@ Move<VkPipeline> createSubpassPipeline (const DeviceInterface&            vk,
        const VkVertexInputBindingDescription vertexBinding =
        {
                0u,                                                                                                                     // binding
-               (deUint32)sizeof(tcu::Vec4),                                                            // strideInBytes
+               (deUint32)sizeof(tcu::Vec2),                                                            // strideInBytes
                VK_VERTEX_INPUT_RATE_VERTEX,                                                            // stepRate
        };
        const VkVertexInputAttributeDescription vertexAttrib =
@@ -1646,6 +1738,7 @@ Move<VkPipeline> createSubpassPipeline (const DeviceInterface&            vk,
                VK_FALSE,                                                                                                               // alphaToCoverageEnable
                VK_FALSE,                                                                                                               // alphaToOneEnable
        };
+       const size_t stencilIndex = renderInfo.getSubpassIndex();
        const VkPipelineDepthStencilStateCreateInfo depthStencilState =
        {
                VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO,     // sType
@@ -1663,7 +1756,7 @@ Move<VkPipeline> createSubpassPipeline (const DeviceInterface&            vk,
                        VK_COMPARE_OP_ALWAYS,                                                                   // stencilCompareOp
                        ~0u,                                                                                                    // stencilCompareMask
                        ~0u,                                                                                                    // stencilWriteMask
-                       STENCIL_VALUE                                                                                   // stencilReference
+                       ((stencilIndex % 2) == 0) ? ~0x0u : 0x0u                                // stencilReference
                },                                                                                                                      // front
                {
                        VK_STENCIL_OP_REPLACE,                                                                  // stencilFailOp
@@ -1672,7 +1765,7 @@ Move<VkPipeline> createSubpassPipeline (const DeviceInterface&            vk,
                        VK_COMPARE_OP_ALWAYS,                                                                   // stencilCompareOp
                        ~0u,                                                                                                    // stencilCompareMask
                        ~0u,                                                                                                    // stencilWriteMask
-                       STENCIL_VALUE                                                                                   // stencilReference
+                       ((stencilIndex % 2) == 0) ? ~0x0u : 0x0u                                // stencilReference
                },                                                                                                                      // back
 
                0.0f,                                                                                                           // minDepthBounds;
@@ -1691,28 +1784,28 @@ Move<VkPipeline> createSubpassPipeline (const DeviceInterface&          vk,
        };
        const VkGraphicsPipelineCreateInfo createInfo =
        {
-               VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO,                // sType
-               DE_NULL,                                                                                                // pNext
+               VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO,        // sType
+               DE_NULL,                                                                                        // pNext
                (VkPipelineCreateFlags)0u,
 
-               2,                                                                                                              // stageCount
-               shaderStages,                                                                                   // pStages
-
-               &vertexInputState,                                                                              // pVertexInputState
-               &inputAssemblyState,                                                                    // pInputAssemblyState
-               DE_NULL,                                                                                                // pTessellationState
-               &viewportState,                                                                                 // pViewportState
-               &rasterState,                                                                                   // pRasterState
-               &multisampleState,                                                                              // pMultisampleState
-               &depthStencilState,                                                                             // pDepthStencilState
-               &blendState,                                                                                    // pColorBlendState
-               (const VkPipelineDynamicStateCreateInfo*)DE_NULL,               // pDynamicState
-               pipelineLayout,                                                                                 // layout
-
-               renderPass,                                                                                             // renderPass
-               renderInfo.getSubpassIndex(),                                                   // subpass
-               DE_NULL,                                                                                                // basePipelineHandle
-               0u                                                                                                              // basePipelineIndex
+               2,                                                                                                      // stageCount
+               shaderStages,                                                                           // pStages
+
+               &vertexInputState,                                                                      // pVertexInputState
+               &inputAssemblyState,                                                            // pInputAssemblyState
+               DE_NULL,                                                                                        // pTessellationState
+               &viewportState,                                                                         // pViewportState
+               &rasterState,                                                                           // pRasterState
+               &multisampleState,                                                                      // pMultisampleState
+               &depthStencilState,                                                                     // pDepthStencilState
+               &blendState,                                                                            // pColorBlendState
+               (const VkPipelineDynamicStateCreateInfo*)DE_NULL,       // pDynamicState
+               pipelineLayout,                                                                         // layout
+
+               renderPass,                                                                                     // renderPass
+               renderInfo.getSubpassIndex(),                                           // subpass
+               DE_NULL,                                                                                        // basePipelineHandle
+               0u                                                                                                      // basePipelineIndex
        };
 
        return createGraphicsPipeline(vk, device, DE_NULL, &createInfo);
@@ -1721,31 +1814,84 @@ Move<VkPipeline> createSubpassPipeline (const DeviceInterface&          vk,
 class SubpassRenderer
 {
 public:
-       SubpassRenderer (Context&                                       context,
-                                        const DeviceInterface&         vk,
-                                        VkDevice                                       device,
-                                        Allocator&                                     allocator,
-                                        VkRenderPass                           renderPass,
-                                        VkFramebuffer                          framebuffer,
-                                        VkCommandPool                          commandBufferPool,
-                                        deUint32                                       queueFamilyIndex,
-                                        const SubpassRenderInfo&       renderInfo)
+       SubpassRenderer (Context&                                                                               context,
+                                        const DeviceInterface&                                                 vk,
+                                        VkDevice                                                                               device,
+                                        Allocator&                                                                             allocator,
+                                        VkRenderPass                                                                   renderPass,
+                                        VkFramebuffer                                                                  framebuffer,
+                                        VkCommandPool                                                                  commandBufferPool,
+                                        deUint32                                                                               queueFamilyIndex,
+                                        const vector<VkImage>&                                                 attachmentImages,
+                                        const vector<pair<VkImageView, VkImageView> >& attachmentViews,
+                                        const SubpassRenderInfo&                                               renderInfo,
+                                        const vector<Attachment>&                                              attachmentInfos)
                : m_renderInfo  (renderInfo)
        {
-               const deUint32 subpassIndex = renderInfo.getSubpassIndex();
+               const deUint32                                                  subpassIndex    = renderInfo.getSubpassIndex();
+               vector<VkDescriptorSetLayoutBinding>    bindings;
+
+               for (deUint32 colorAttachmentNdx = 0; colorAttachmentNdx < renderInfo.getColorAttachmentCount();  colorAttachmentNdx++)
+                       m_colorAttachmentImages.push_back(attachmentImages[renderInfo.getColorAttachmentIndex(colorAttachmentNdx)]);
+
+               if (renderInfo.getDepthStencilAttachmentIndex())
+                       m_depthStencilAttachmentImage = attachmentImages[*renderInfo.getDepthStencilAttachmentIndex()];
 
                if (renderInfo.getRenderQuad())
                {
-                       const RenderQuad&                                       renderQuad                              = *renderInfo.getRenderQuad();
+                       const RenderQuad&       renderQuad      = *renderInfo.getRenderQuad();
+
+                       if (renderInfo.getInputAttachmentCount() > 0)
+                       {
+                               deUint32                                                                bindingIndex    = 0;
+
+                               for (deUint32 inputAttachmentNdx = 0; inputAttachmentNdx < renderInfo.getInputAttachmentCount(); inputAttachmentNdx++)
+                               {
+                                       const Attachment                        attachmentInfo  = attachmentInfos[renderInfo.getInputAttachmentIndex(inputAttachmentNdx)];
+                                       const tcu::TextureFormat        format                  = mapVkFormat(attachmentInfo.getFormat());
+                                       const bool                                      isDepthFormat   = tcu::hasDepthComponent(format.order);
+                                       const bool                                      isStencilFormat = tcu::hasStencilComponent(format.order);
+                                       const deUint32                          bindingCount    = isDepthFormat && isStencilFormat ? 2u : 1u;
+
+                                       for (deUint32 bindingNdx = 0; bindingNdx < bindingCount; bindingNdx++)
+                                       {
+                                               const VkDescriptorSetLayoutBinding binding =
+                                               {
+                                                       bindingIndex,
+                                                       vk::VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
+                                                       1u,
+                                                       vk::VK_SHADER_STAGE_FRAGMENT_BIT,
+                                                       DE_NULL
+                                               };
+
+                                               bindings.push_back(binding);
+                                               bindingIndex++;
+                                       }
+                               }
+
+                               const VkDescriptorSetLayoutCreateInfo createInfo =
+                               {
+                                       vk::VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,
+                                       DE_NULL,
+
+                                       0u,
+                                       (deUint32)bindings.size(),
+                                       &bindings[0]
+                               };
+
+                               m_descriptorSetLayout = vk::createDescriptorSetLayout(vk, device, &createInfo);
+                       }
+
+                       const VkDescriptorSetLayout                     descriptorSetLayout             = *m_descriptorSetLayout;
                        const VkPipelineLayoutCreateInfo        pipelineLayoutParams    =
                        {
-                               VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,  // sType;
-                               DE_NULL,                                                                                // pNext;
+                               VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,                  // sType;
+                               DE_NULL,                                                                                                // pNext;
                                (vk::VkPipelineLayoutCreateFlags)0,
-                               0u,                                                                                             // descriptorSetCount;
-                               DE_NULL,                                                                                // pSetLayouts;
-                               0u,                                                                                             // pushConstantRangeCount;
-                               DE_NULL,                                                                                // pPushConstantRanges;
+                               m_descriptorSetLayout ? 1u :0u ,                                                // setLayoutCount;
+                               m_descriptorSetLayout ? &descriptorSetLayout : DE_NULL, // pSetLayouts;
+                               0u,                                                                                                             // pushConstantRangeCount;
+                               DE_NULL,                                                                                                // pPushConstantRanges;
                        };
 
                        m_vertexShaderModule    = createShaderModule(vk, device, context.getBinaryCollection().get(de::toString(subpassIndex) + "-vert"), 0u);
@@ -1758,6 +1904,151 @@ public:
 
                        bindBufferMemory(vk, device, *m_vertexBuffer, m_vertexBufferMemory->getMemory(), m_vertexBufferMemory->getOffset());
                        uploadBufferData(vk, device, *m_vertexBufferMemory, renderQuad.getVertexDataSize(), renderQuad.getVertexPointer());
+
+                       if (renderInfo.getInputAttachmentCount() > 0)
+                       {
+                               {
+                                       const VkDescriptorPoolSize poolSize =
+                                       {
+                                               vk::VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
+                                               // \note Reserve 2 per input attachment since depthStencil attachments require 2.
+                                               renderInfo.getInputAttachmentCount() * 2u
+                                       };
+                                       const VkDescriptorPoolCreateInfo createInfo =
+                                       {
+                                               vk::VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO,
+                                               DE_NULL,
+                                               VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,
+
+                                               // \note Reserve 2 per input attachment since depthStencil attachments require 2.
+                                               renderInfo.getInputAttachmentCount() * 2u,
+                                               1u,
+                                               &poolSize
+                                       };
+
+                                       m_descriptorPool = vk::createDescriptorPool(vk, device, &createInfo);
+                               }
+                               {
+                                       const VkDescriptorSetAllocateInfo       allocateInfo =
+                                       {
+                                               vk::VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO,
+                                               DE_NULL,
+
+                                               *m_descriptorPool,
+                                               1u,
+                                               &descriptorSetLayout
+                                       };
+
+                                       m_descriptorSet = vk::allocateDescriptorSet(vk, device, &allocateInfo);
+                               }
+                               {
+                                       vector<VkWriteDescriptorSet>    writes                  (bindings.size());
+                                       vector<VkDescriptorImageInfo>   imageInfos              (bindings.size());
+                                       deUint32                                                bindingIndex    = 0;
+
+                                       for (deUint32 inputAttachmentNdx = 0; inputAttachmentNdx < renderInfo.getInputAttachmentCount(); inputAttachmentNdx++)
+                                       {
+                                               const Attachment                        attachmentInfo  = attachmentInfos[renderInfo.getInputAttachmentIndex(inputAttachmentNdx)];
+                                               const tcu::TextureFormat        format                  = mapVkFormat(attachmentInfo.getFormat());
+                                               const bool                                      isDepthFormat   = tcu::hasDepthComponent(format.order);
+                                               const bool                                      isStencilFormat = tcu::hasStencilComponent(format.order);
+
+                                               if (isDepthFormat && isStencilFormat)
+                                               {
+                                                       {
+                                                               const VkDescriptorImageInfo     imageInfo =
+                                                               {
+                                                                       (VkSampler)0,
+                                                                       attachmentViews[renderInfo.getInputAttachmentIndex(inputAttachmentNdx)].first,
+                                                                       VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
+                                                               };
+                                                               imageInfos[bindingIndex] = imageInfo;
+
+                                                               {
+                                                                       const VkWriteDescriptorSet      write =
+                                                                       {
+                                                                               VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,
+                                                                               DE_NULL,
+
+                                                                               *m_descriptorSet,
+                                                                               bindingIndex,
+                                                                               0u,
+                                                                               1u,
+                                                                               VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
+                                                                               &imageInfos[bindingIndex],
+                                                                               DE_NULL,
+                                                                               DE_NULL
+                                                                       };
+                                                                       writes[bindingIndex] = write;
+
+                                                                       bindingIndex++;
+                                                               }
+                                                       }
+                                                       {
+                                                               const VkDescriptorImageInfo     imageInfo =
+                                                               {
+                                                                       (VkSampler)0,
+                                                                       attachmentViews[renderInfo.getInputAttachmentIndex(inputAttachmentNdx)].second,
+                                                                       VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
+                                                               };
+                                                               imageInfos[bindingIndex] = imageInfo;
+
+                                                               {
+                                                                       const VkWriteDescriptorSet      write =
+                                                                       {
+                                                                               VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,
+                                                                               DE_NULL,
+
+                                                                               *m_descriptorSet,
+                                                                               bindingIndex,
+                                                                               0u,
+                                                                               1u,
+                                                                               VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
+                                                                               &imageInfos[bindingIndex],
+                                                                               DE_NULL,
+                                                                               DE_NULL
+                                                                       };
+                                                                       writes[bindingIndex] = write;
+
+                                                                       bindingIndex++;
+                                                               }
+                                                       }
+                                               }
+                                               else
+                                               {
+                                                       const VkDescriptorImageInfo     imageInfo =
+                                                       {
+                                                               (VkSampler)0,
+                                                               attachmentViews[renderInfo.getInputAttachmentIndex(inputAttachmentNdx)].first,
+                                                               VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
+                                                       };
+                                                       imageInfos[bindingIndex] = imageInfo;
+
+                                                       {
+                                                               const VkWriteDescriptorSet      write =
+                                                               {
+                                                                       VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,
+                                                                       DE_NULL,
+
+                                                                       *m_descriptorSet,
+                                                                       bindingIndex,
+                                                                       0u,
+                                                                       1u,
+                                                                       VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
+                                                                       &imageInfos[bindingIndex],
+                                                                       DE_NULL,
+                                                                       DE_NULL
+                                                               };
+                                                               writes[bindingIndex] = write;
+
+                                                               bindingIndex++;
+                                                       }
+                                               }
+                                       }
+
+                                       vk.updateDescriptorSets(device, (deUint32)writes.size(), &writes[0], 0u, DE_NULL);
+                               }
+                       }
                }
 
                if (renderInfo.isSecondary())
@@ -1813,10 +2104,10 @@ public:
 
                if (m_renderInfo.getDepthStencilClear())
                {
-                       const DepthStencilClear&                depthStencilClear       = *m_renderInfo.getDepthStencilClear();
-                       const deUint32                                  attachmentNdx           = m_renderInfo.getColorAttachmentCount();
-                       tcu::TextureFormat                              format                          = mapVkFormat(m_renderInfo.getDepthStencilAttachment()->getFormat());
-                       const VkClearAttachment                 attachment                      =
+                       const DepthStencilClear&        depthStencilClear       = *m_renderInfo.getDepthStencilClear();
+                       const deUint32                          attachmentNdx           = m_renderInfo.getColorAttachmentCount();
+                       tcu::TextureFormat                      format                          = mapVkFormat(m_renderInfo.getDepthStencilAttachment()->getFormat());
+                       const VkClearAttachment         attachment                      =
                        {
                                (VkImageAspectFlags)((hasDepthComponent(format.order) ? VK_IMAGE_ASPECT_DEPTH_BIT : 0)
                                        | (hasStencilComponent(format.order) ? VK_IMAGE_ASPECT_STENCIL_BIT : 0)),
@@ -1836,29 +2127,117 @@ public:
                        vk.cmdClearAttachments(commandBuffer, 1u, &attachment, 1u, &rect);
                }
 
+               vector<VkImageMemoryBarrier>    selfDeps;
+               VkPipelineStageFlags                    srcStages = 0;
+               VkPipelineStageFlags                    dstStages = 0;
+
+               for (deUint32 inputAttachmentNdx = 0; inputAttachmentNdx < m_renderInfo.getInputAttachmentCount(); inputAttachmentNdx++)
+               {
+                       for (deUint32 colorAttachmentNdx = 0; colorAttachmentNdx < m_renderInfo.getColorAttachmentCount(); colorAttachmentNdx++)
+                       {
+                               if (m_renderInfo.getInputAttachmentIndex(inputAttachmentNdx) == m_renderInfo.getColorAttachmentIndex(colorAttachmentNdx))
+                               {
+                                       const VkImageMemoryBarrier      barrier   =
+                                       {
+                                               VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,                 // sType
+                                               DE_NULL,                                                                                // pNext
+
+                                               VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,                   // srcAccessMask
+                                               VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,                    // dstAccessMask
+
+                                               VK_IMAGE_LAYOUT_GENERAL,                                                // oldLayout
+                                               VK_IMAGE_LAYOUT_GENERAL,                                                // newLayout
+
+                                               VK_QUEUE_FAMILY_IGNORED,                                                // srcQueueFamilyIndex
+                                               VK_QUEUE_FAMILY_IGNORED,                                                // destQueueFamilyIndex
+
+                                               m_colorAttachmentImages[colorAttachmentNdx],    // image
+                                               {                                                                                               // subresourceRange
+                                                       VK_IMAGE_ASPECT_COLOR_BIT,                                              // aspect
+                                                       0,                                                                                              // baseMipLevel
+                                                       1,                                                                                              // mipLevels
+                                                       0,                                                                                              // baseArraySlice
+                                                       1                                                                                               // arraySize
+                                               }
+                                       };
+
+                                       srcStages |= VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
+                                       dstStages |= VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT;
+
+                                       selfDeps.push_back(barrier);
+                               }
+                       }
+
+                       if (m_renderInfo.getDepthStencilAttachmentIndex() && (m_renderInfo.getInputAttachmentIndex(inputAttachmentNdx) == *m_renderInfo.getDepthStencilAttachmentIndex()))
+                       {
+                                       const VkImageMemoryBarrier      barrier   =
+                                       {
+                                               VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,                 // sType;
+                                               DE_NULL,                                                                                // pNext;
+
+                                               VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,   // srcAccessMask
+                                               VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,                    // dstAccessMask
+
+                                               VK_IMAGE_LAYOUT_GENERAL,                                                // oldLayout
+                                               VK_IMAGE_LAYOUT_GENERAL,                                                // newLayout;
+
+                                               VK_QUEUE_FAMILY_IGNORED,                                                // srcQueueFamilyIndex;
+                                               VK_QUEUE_FAMILY_IGNORED,                                                // destQueueFamilyIndex;
+
+                                               m_depthStencilAttachmentImage,                                  // image;
+                                               {                                                                                               // subresourceRange;
+                                                       VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT,        // aspect;
+                                                       0,                                                                                                                      // baseMipLevel;
+                                                       1,                                                                                                                      // mipLevels;
+                                                       0,                                                                                                                      // baseArraySlice;
+                                                       1                                                                                                                       // arraySize;
+                                               }
+                                       };
+
+                                       srcStages |= VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT;
+                                       dstStages |= VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT;
+
+                                       selfDeps.push_back(barrier);
+                       }
+               }
+
+               if (!selfDeps.empty())
+                       vk.cmdPipelineBarrier(commandBuffer, srcStages, dstStages, VK_DEPENDENCY_BY_REGION_BIT, 0, DE_NULL, 0, DE_NULL, (deUint32)selfDeps.size(), &selfDeps[0]);
+
                if (m_renderInfo.getRenderQuad())
                {
                        const VkDeviceSize      offset                  = 0;
                        const VkBuffer          vertexBuffer    = *m_vertexBuffer;
 
                        vk.cmdBindPipeline(commandBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipeline);
+
+                       if (m_descriptorSet)
+                       {
+                               const VkDescriptorSet descriptorSet = *m_descriptorSet;
+                               vk.cmdBindDescriptorSets(commandBuffer, vk::VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipelineLayout, 0u, 1u, &descriptorSet, 0u, NULL);
+                       }
+
                        vk.cmdBindVertexBuffers(commandBuffer, 0u, 1u, &vertexBuffer, &offset);
                        vk.cmdDraw(commandBuffer, 6u, 1u, 0u, 0u);
                }
        }
 
 private:
-       const SubpassRenderInfo                         m_renderInfo;
-       Move<VkCommandBuffer>                           m_commandBuffer;
-       Move<VkPipeline>                                        m_pipeline;
-       Move<VkPipelineLayout>                          m_pipelineLayout;
-
-       Move<VkShaderModule>                            m_vertexShaderModule;
-
-       Move<VkShaderModule>                            m_fragmentShaderModule;
-
-       Move<VkBuffer>                                          m_vertexBuffer;
-       de::MovePtr<Allocation>                         m_vertexBufferMemory;
+       const SubpassRenderInfo         m_renderInfo;
+       Move<VkCommandBuffer>           m_commandBuffer;
+       Move<VkPipeline>                        m_pipeline;
+       Move<VkDescriptorSetLayout>     m_descriptorSetLayout;
+       Move<VkPipelineLayout>          m_pipelineLayout;
+
+       Move<VkShaderModule>            m_vertexShaderModule;
+       Move<VkShaderModule>            m_fragmentShaderModule;
+
+       Move<VkDescriptorPool>          m_descriptorPool;
+       Move<VkDescriptorSet>           m_descriptorSet;
+       Move<VkBuffer>                          m_vertexBuffer;
+       de::MovePtr<Allocation>         m_vertexBufferMemory;
+       vector<VkImage>                         m_colorAttachmentImages;
+       VkImage                                         m_depthStencilAttachmentImage;
 };
 
 void pushImageInitializationCommands (const DeviceInterface&                                                           vk,
@@ -1922,7 +2301,7 @@ void pushImageInitializationCommands (const DeviceInterface&                                                              vk,
                {
                        const float                                             clearNan                = tcu::Float32::nan().asFloat();
                        const float                                             clearDepth              = hasDepthComponent(format.order) ? clearValues[attachmentNdx]->depthStencil.depth : clearNan;
-                       const deUint32                                  clearStencil    = hasStencilComponent(format.order) ? clearValues[attachmentNdx]->depthStencil.stencil : ~0u;
+                       const deUint32                                  clearStencil    = hasStencilComponent(format.order) ? clearValues[attachmentNdx]->depthStencil.stencil : 0xDEu;
                        const VkClearDepthStencilValue  depthStencil    =
                        {
                                clearDepth,
@@ -1944,11 +2323,11 @@ void pushImageInitializationCommands (const DeviceInterface&                                                            vk,
                {
                        const VkImageSubresourceRange   range           =
                        {
-                               VK_IMAGE_ASPECT_COLOR_BIT,                              // aspectMask;
-                               0,                                                                              // baseMipLevel;
-                               1,                                                                              // mipLevels;
-                               0,                                                                              // baseArrayLayer;
-                               1                                                                               // layerCount;
+                               VK_IMAGE_ASPECT_COLOR_BIT,      // aspectMask;
+                               0,                                                      // baseMipLevel;
+                               1,                                                      // mipLevels;
+                               0,                                                      // baseArrayLayer;
+                               1                                                       // layerCount;
                        };
                        const VkClearColorValue                 clearColor      = clearValues[attachmentNdx]->color;
 
@@ -1961,8 +2340,8 @@ void pushImageInitializationCommands (const DeviceInterface&                                                              vk,
 
                for (size_t attachmentNdx = 0; attachmentNdx < attachmentInfo.size(); attachmentNdx++)
                {
-                       const VkImageLayout                     oldLayout = clearValues[attachmentNdx] ? VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL : VK_IMAGE_LAYOUT_UNDEFINED;
-                       const VkImageMemoryBarrier      barrier   =
+                       const VkImageLayout                     oldLayout       = clearValues[attachmentNdx] ? VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL : VK_IMAGE_LAYOUT_UNDEFINED;
+                       const VkImageMemoryBarrier      barrier         =
                        {
                                VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,                                 // sType;
                                DE_NULL,                                                                                                // pNext;
@@ -1998,15 +2377,15 @@ void pushImageInitializationCommands (const DeviceInterface&                                                            vk,
        }
 }
 
-void pushRenderPassCommands (const DeviceInterface&                                                            vk,
-                                                        VkCommandBuffer                                                                        commandBuffer,
-                                                        VkRenderPass                                                                           renderPass,
-                                                        VkFramebuffer                                                                          framebuffer,
-                                                        const vector<de::SharedPtr<SubpassRenderer> >&         subpassRenderers,
-                                                        const UVec2&                                                                           renderPos,
-                                                        const UVec2&                                                                           renderSize,
-                                                        const vector<Maybe<VkClearValue> >&                            renderPassClearValues,
-                                                        TestConfig::RenderTypes                                                        render)
+void pushRenderPassCommands (const DeviceInterface&                                                    vk,
+                                                        VkCommandBuffer                                                                commandBuffer,
+                                                        VkRenderPass                                                                   renderPass,
+                                                        VkFramebuffer                                                                  framebuffer,
+                                                        const vector<de::SharedPtr<SubpassRenderer> >& subpassRenderers,
+                                                        const UVec2&                                                                   renderPos,
+                                                        const UVec2&                                                                   renderSize,
+                                                        const vector<Maybe<VkClearValue> >&                    renderPassClearValues,
+                                                        TestConfig::RenderTypes                                                render)
 {
        const float                             clearNan                                = tcu::Float32::nan().asFloat();
        vector<VkClearValue>    attachmentClearValues;
@@ -2138,17 +2517,17 @@ void pushReadImagesToBuffers (const DeviceInterface&                                                            vk,
                {
                        const VkBufferImageCopy stencilRect =
                        {
-                               0, // bufferOffset
-                               0, // bufferRowLength
-                               0, // bufferImageHeight
+                               0,                                                                              // bufferOffset
+                               0,                                                                              // bufferRowLength
+                               0,                                                                              // bufferImageHeight
                                {                                                                       // imageSubresource
                                        VK_IMAGE_ASPECT_STENCIL_BIT,    // aspect
                                        0,                                                              // mipLevel
                                        0,                                                              // arraySlice
-                                       1                                               // arraySize
+                                       1                                                               // arraySize
                                },
-                               { 0, 0, 0 },                            // imageOffset
-                               { targetSize.x(), targetSize.y(), 1u }          // imageExtent
+                               { 0, 0, 0 },                                                    // imageOffset
+                               { targetSize.x(), targetSize.y(), 1u }  // imageExtent
                        };
 
                        vk.cmdCopyImageToBuffer(commandBuffer, attachmentResources[attachmentNdx]->getImage(), VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, attachmentResources[attachmentNdx]->getSecondaryBuffer(), 1, &stencilRect);
@@ -2215,66 +2594,220 @@ void pushReadImagesToBuffers (const DeviceInterface&                                                           vk,
        }
 }
 
-void clear (const PixelBufferAccess& access, const VkClearValue& value)
+class PixelValue
+{
+public:
+                               PixelValue              (const Maybe<bool>&     x = nothing<bool>(),
+                                                                const Maybe<bool>&     y = nothing<bool>(),
+                                                                const Maybe<bool>&     z = nothing<bool>(),
+                                                                const Maybe<bool>&     w = nothing<bool>());
+
+       void            setUndefined    (size_t ndx);
+       void            setValue                (size_t ndx, bool value);
+       Maybe<bool>     getValue                (size_t ndx) const;
+
+private:
+       deUint16        m_status;
+};
+
+PixelValue::PixelValue (const Maybe<bool>&     x,
+                                               const Maybe<bool>&      y,
+                                               const Maybe<bool>&      z,
+                                               const Maybe<bool>&      w)
+       : m_status (0)
 {
-       const tcu::TextureFormat&       format  = access.getFormat();
+       const Maybe<bool> values[] =
+       {
+               x, y, z, w
+       };
 
-       if (tcu::hasDepthComponent(format.order) || tcu::hasStencilComponent(format.order))
+       for (size_t ndx = 0; ndx < DE_LENGTH_OF_ARRAY(values); ndx++)
        {
-               if (tcu::hasDepthComponent(format.order))
-                       tcu::clearDepth(access, value.depthStencil.depth);
+               if (values[ndx])
+                       setValue(ndx, *values[ndx]);
+               else
+                       setUndefined(ndx);
+       }
 
-               if (tcu::hasStencilComponent(format.order))
-                       tcu::clearStencil(access, value.depthStencil.stencil);
+       DE_ASSERT(m_status <= 0xFFu);
+}
+
+void PixelValue::setUndefined (size_t ndx)
+{
+       DE_ASSERT(ndx < 4);
+       DE_ASSERT(m_status <= 0xFFu);
+
+       m_status &= (deUint16)~(0x1u << (deUint16)(ndx * 2));
+       DE_ASSERT(m_status <= 0xFFu);
+}
+
+void PixelValue::setValue (size_t ndx, bool value)
+{
+       DE_ASSERT(ndx < 4);
+       DE_ASSERT(m_status <= 0xFFu);
+
+       m_status |= (deUint16)(0x1u << (ndx * 2));
+
+       if (value)
+               m_status |= (deUint16)(0x1u << (ndx * 2 + 1));
+       else
+               m_status &= (deUint16)~(0x1u << (deUint16)(ndx * 2 + 1));
+
+       DE_ASSERT(m_status <= 0xFFu);
+}
+
+Maybe<bool> PixelValue::getValue (size_t ndx) const
+{
+       DE_ASSERT(ndx < 4);
+       DE_ASSERT(m_status <= 0xFFu);
+
+       if ((m_status & (0x1u << (deUint16)(ndx * 2))) != 0)
+       {
+               return just((m_status & (0x1u << (deUint32)(ndx * 2 + 1))) != 0);
        }
        else
+               return nothing<bool>();
+}
+
+void clearReferenceValues (vector<PixelValue>& values,
+                                                  const UVec2&                 targetSize,
+                                                  const UVec2&                 offset,
+                                                  const UVec2&                 size,
+                                                  const BVec4&                 mask,
+                                                  const PixelValue&    value)
+{
+       DE_ASSERT(targetSize.x() * targetSize.y() == (deUint32)values.size());
+       DE_ASSERT(offset.x() + size.x() <= targetSize.x());
+       DE_ASSERT(offset.y() + size.y() <= targetSize.y());
+
+       for (deUint32 y = offset.y(); y < offset.y() + size.y(); y++)
+       for (deUint32 x = offset.x(); x < offset.x() + size.x(); x++)
        {
-               if (tcu::getTextureChannelClass(format.type) == tcu::TEXTURECHANNELCLASS_FLOATING_POINT
-                               || tcu::getTextureChannelClass(format.type) == tcu::TEXTURECHANNELCLASS_SIGNED_FIXED_POINT
-                               || tcu::getTextureChannelClass(format.type) == tcu::TEXTURECHANNELCLASS_UNSIGNED_FIXED_POINT)
+               for (int compNdx = 0; compNdx < 4; compNdx++)
                {
-                       const tcu::Vec4         color   (value.color.float32[0],
-                                                                                value.color.float32[1],
-                                                                                value.color.float32[2],
-                                                                                value.color.float32[3]);
+                       if (mask[compNdx])
+                       {
+                               if (value.getValue(compNdx))
+                                       values[x + y * targetSize.x()].setValue(compNdx, *value.getValue(compNdx));
+                               else
+                                       values[x + y * targetSize.x()].setUndefined(compNdx);
+                       }
+               }
+       }
+}
 
-                       if (tcu::isSRGB(format))
-                               tcu::clear(access, tcu::linearToSRGB(color));
-                       else
-                               tcu::clear(access, color);
+void markUndefined (vector<PixelValue>&        values,
+                                       const BVec4&            mask,
+                                       const UVec2&            targetSize,
+                                       const UVec2&            offset,
+                                       const UVec2&            size)
+{
+       DE_ASSERT(targetSize.x() * targetSize.y() == (deUint32)values.size());
+
+       for (deUint32 y = offset.y(); y < offset.y() + size.y(); y++)
+       for (deUint32 x = offset.x(); x < offset.x() + size.x(); x++)
+       {
+               for (int compNdx = 0; compNdx < 4; compNdx++)
+               {
+                       if (mask[compNdx])
+                               values[x + y * targetSize.x()].setUndefined(compNdx);
                }
-               else if (tcu::getTextureChannelClass(format.type) == tcu::TEXTURECHANNELCLASS_UNSIGNED_INTEGER)
+       }
+}
+
+PixelValue clearValueToPixelValue (const VkClearValue&                 value,
+                                                                  const tcu::TextureFormat&    format)
+{
+       const bool      isDepthAttachment                       = hasDepthComponent(format.order);
+       const bool      isStencilAttachment                     = hasStencilComponent(format.order);
+       const bool      isDepthOrStencilAttachment      = isDepthAttachment || isStencilAttachment;
+       PixelValue      pixelValue;
+
+       if (isDepthOrStencilAttachment)
+       {
+               if (isDepthAttachment)
                {
-                       const tcu::UVec4        color   (value.color.uint32[0],
-                                                                                value.color.uint32[1],
-                                                                                value.color.uint32[2],
-                                                                                value.color.uint32[3]);
+                       if (value.depthStencil.depth == 1.0f)
+                               pixelValue.setValue(0, true);
+                       else if (value.depthStencil.depth == 0.0f)
+                               pixelValue.setValue(0, false);
+                       else
+                               DE_FATAL("Unknown depth value");
+               }
 
-                       tcu::clear(access, color);
+               if (isStencilAttachment)
+               {
+                       if (value.depthStencil.stencil == 0xFFu)
+                               pixelValue.setValue(1, true);
+                       else if (value.depthStencil.stencil == 0x0u)
+                               pixelValue.setValue(1, false);
+                       else
+                               DE_FATAL("Unknown stencil value");
                }
-               else if (tcu::getTextureChannelClass(format.type) == tcu::TEXTURECHANNELCLASS_SIGNED_INTEGER)
+       }
+       else
+       {
+               const tcu::TextureChannelClass  channelClass    = tcu::getTextureChannelClass(format.type);
+               const tcu::BVec4                                channelMask             = tcu::getTextureFormatChannelMask(format);
+
+               switch (channelClass)
                {
-                       const tcu::IVec4        color   (value.color.int32[0],
-                                                                                value.color.int32[1],
-                                                                                value.color.int32[2],
-                                                                                value.color.int32[3]);
+                       case tcu::TEXTURECHANNELCLASS_SIGNED_INTEGER:
+                               for (int i = 0; i < 4; i++)
+                               {
+                                       if (channelMask[i])
+                                       {
+                                               if (value.color.int32[i] == 1)
+                                                       pixelValue.setValue(i, true);
+                                               else if (value.color.int32[i] == 0)
+                                                       pixelValue.setValue(i, false);
+                                               else
+                                                       DE_FATAL("Unknown clear color value");
+                                       }
+                               }
+                               break;
+
+                       case tcu::TEXTURECHANNELCLASS_UNSIGNED_INTEGER:
+                               for (int i = 0; i < 4; i++)
+                               {
+                                       if (channelMask[i])
+                                       {
+                                               if (value.color.uint32[i] == 1u)
+                                                       pixelValue.setValue(i, true);
+                                               else if (value.color.uint32[i] == 0u)
+                                                       pixelValue.setValue(i, false);
+                                               else
+                                                       DE_FATAL("Unknown clear color value");
+                                       }
+                               }
+                               break;
+
+                       case tcu::TEXTURECHANNELCLASS_SIGNED_FIXED_POINT:
+                       case tcu::TEXTURECHANNELCLASS_UNSIGNED_FIXED_POINT:
+                       case tcu::TEXTURECHANNELCLASS_FLOATING_POINT:
+                               for (int i = 0; i < 4; i++)
+                               {
+                                       if (channelMask[i])
+                                       {
+                                               if (value.color.float32[i] == 1.0f)
+                                                       pixelValue.setValue(i, true);
+                                               else if (value.color.float32[i] == 0.0f)
+                                                       pixelValue.setValue(i, false);
+                                               else
+                                                       DE_FATAL("Unknown clear color value");
+                                       }
+                               }
+                               break;
 
-                       tcu::clear(access, color);
+                       default:
+                               DE_FATAL("Unknown channel class");
                }
-               else
-                       DE_FATAL("Unknown channel class");
        }
-}
-
-Vec4 computeUvs (const IVec2& posA, const IVec2& posB, const IVec2& pos)
-{
-       const float u = de::clamp((float)(pos.x() - posA.x()) / (float)(posB.x() - posA.x()), 0.0f, 1.0f);
-       const float v = de::clamp((float)(pos.y() - posA.y()) / (float)(posB.y() - posA.y()), 0.0f, 1.0f);
 
-       return Vec4(u, v, u * v, (u + v) / 2.0f);
+       return pixelValue;
 }
 
-void renderReferenceImages (vector<tcu::TextureLevel>&                 referenceAttachments,
+void renderReferenceValues (vector<vector<PixelValue> >&               referenceAttachments,
                                                        const RenderPass&                                       renderPassInfo,
                                                        const UVec2&                                            targetSize,
                                                        const vector<Maybe<VkClearValue> >&     imageClearValues,
@@ -2290,30 +2823,14 @@ void renderReferenceImages (vector<tcu::TextureLevel>&                  referenceAttachments,
 
        for (size_t attachmentNdx = 0; attachmentNdx < renderPassInfo.getAttachments().size(); attachmentNdx++)
        {
-               const Attachment                                attachment                                      = renderPassInfo.getAttachments()[attachmentNdx];
-               const tcu::TextureFormat                format                                          = mapVkFormat(attachment.getFormat());
-               const tcu::TextureFormatInfo    textureInfo                                     = tcu::getTextureFormatInfo(format);
-               tcu::TextureLevel&                              reference                                       = referenceAttachments[attachmentNdx];
-               const bool                                              isDepthOrStencilAttachment      = hasDepthComponent(format.order) || hasStencilComponent(format.order);
+               const Attachment                        attachment      = renderPassInfo.getAttachments()[attachmentNdx];
+               const tcu::TextureFormat        format          = mapVkFormat(attachment.getFormat());
+               vector<PixelValue>&                     reference       = referenceAttachments[attachmentNdx];
 
-               reference = tcu::TextureLevel(format, targetSize.x(), targetSize.y());
+               reference.resize(targetSize.x() * targetSize.y());
 
                if (imageClearValues[attachmentNdx])
-                       clear(reference.getAccess(), *imageClearValues[attachmentNdx]);
-               else
-               {
-                       // Fill with grid if image contentst are undefined before renderpass
-                       if (isDepthOrStencilAttachment)
-                       {
-                               if (tcu::hasDepthComponent(format.order))
-                                       tcu::fillWithGrid(tcu::getEffectiveDepthStencilAccess(reference.getAccess(), tcu::Sampler::MODE_DEPTH), 2, textureInfo.valueMin, textureInfo.valueMax);
-
-                               if (tcu::hasStencilComponent(format.order))
-                                       tcu::fillWithGrid(tcu::getEffectiveDepthStencilAccess(reference.getAccess(), tcu::Sampler::MODE_STENCIL), 2, textureInfo.valueMin, textureInfo.valueMax);
-                       }
-                       else
-                               tcu::fillWithGrid(reference.getAccess(), 2, textureInfo.valueMin, textureInfo.valueMax);
-               }
+                       clearReferenceValues(reference, targetSize, UVec2(0, 0), targetSize, BVec4(true), clearValueToPixelValue(*imageClearValues[attachmentNdx], format));
        }
 
        for (size_t subpassNdx = 0; subpassNdx < subpasses.size(); subpassNdx++)
@@ -2329,903 +2846,519 @@ void renderReferenceImages (vector<tcu::TextureLevel>&                        referenceAttachments,
 
                        if (!attachmentUsed[attachmentIndex])
                        {
-                               const Attachment&       attachment      = renderPassInfo.getAttachments()[attachmentIndex];
-                               tcu::TextureLevel&      reference       = referenceAttachments[attachmentIndex];
+                               const Attachment&                       attachment      = renderPassInfo.getAttachments()[attachmentIndex];
+                               vector<PixelValue>&                     reference       = referenceAttachments[attachmentIndex];
+                               const tcu::TextureFormat        format          = mapVkFormat(attachment.getFormat());
 
-                               DE_ASSERT(!tcu::hasDepthComponent(reference.getFormat().order));
-                               DE_ASSERT(!tcu::hasStencilComponent(reference.getFormat().order));
+                               DE_ASSERT(!tcu::hasDepthComponent(format.order));
+                               DE_ASSERT(!tcu::hasStencilComponent(format.order));
 
                                if (attachment.getLoadOp() == VK_ATTACHMENT_LOAD_OP_CLEAR)
-                                       clear(tcu::getSubregion(reference.getAccess(), renderPos.x(), renderPos.y(), renderSize.x(), renderSize.y()), *renderPassClearValues[attachmentIndex]);
+                                       clearReferenceValues(reference, targetSize, renderPos, renderSize, BVec4(true), clearValueToPixelValue(*renderPassClearValues[attachmentIndex], format));
                                else if (attachment.getLoadOp() == VK_ATTACHMENT_LOAD_OP_DONT_CARE)
-                               {
-                                       const tcu::TextureFormatInfo textureInfo = tcu::getTextureFormatInfo(reference.getFormat());
-
-                                       tcu::fillWithGrid(tcu::getSubregion(reference.getAccess(), renderPos.x(), renderPos.y(), renderSize.x(), renderSize.y()), 2, textureInfo.valueMin, textureInfo.valueMax);
-                               }
+                                       markUndefined(reference, BVec4(true), targetSize, renderPos, renderSize);
 
                                attachmentUsed[attachmentIndex] = true;
                        }
                }
 
                // Apply load op to depth/stencil attachment if it was used for the first time
-               if (subpass.getDepthStencilAttachment().getAttachment() != VK_ATTACHMENT_UNUSED && !attachmentUsed[subpass.getDepthStencilAttachment().getAttachment()])
+               if (subpass.getDepthStencilAttachment().getAttachment() != VK_ATTACHMENT_UNUSED)
                {
                        const deUint32 attachmentIndex = subpass.getDepthStencilAttachment().getAttachment();
 
                        // Apply load op if attachment was used for the first time
                        if (!attachmentUsed[attachmentIndex])
                        {
-                               const Attachment&       attachment      = renderPassInfo.getAttachments()[attachmentIndex];
-                               tcu::TextureLevel&      reference               = referenceAttachments[attachmentIndex];
+                               const Attachment&                       attachment      = renderPassInfo.getAttachments()[attachmentIndex];
+                               vector<PixelValue>&                     reference       = referenceAttachments[attachmentIndex];
+                               const tcu::TextureFormat        format          = mapVkFormat(attachment.getFormat());
 
-                               if (tcu::hasDepthComponent(reference.getFormat().order))
+                               if (tcu::hasDepthComponent(format.order))
                                {
                                        if (attachment.getLoadOp() == VK_ATTACHMENT_LOAD_OP_CLEAR)
-                                               clear(tcu::getSubregion(tcu::getEffectiveDepthStencilAccess(reference.getAccess(), tcu::Sampler::MODE_DEPTH), renderPos.x(), renderPos.y(), renderSize.x(), renderSize.y()), *renderPassClearValues[attachmentIndex]);
+                                               clearReferenceValues(reference, targetSize, renderPos, renderSize, BVec4(true, false, false, false), clearValueToPixelValue(*renderPassClearValues[attachmentIndex], format));
                                        else if (attachment.getLoadOp() == VK_ATTACHMENT_LOAD_OP_DONT_CARE)
-                                       {
-                                               const tcu::TextureFormatInfo textureInfo = tcu::getTextureFormatInfo(reference.getFormat());
-
-                                               tcu::fillWithGrid(tcu::getSubregion(tcu::getEffectiveDepthStencilAccess(reference.getAccess(), tcu::Sampler::MODE_DEPTH), renderPos.x(), renderPos.y(), renderSize.x(), renderSize.y()), 2, textureInfo.valueMin, textureInfo.valueMax);
-                                       }
+                                               markUndefined(reference, BVec4(true, false, false, false), targetSize, renderPos, renderSize);
                                }
 
-                               if (tcu::hasStencilComponent(reference.getFormat().order))
+                               if (tcu::hasStencilComponent(format.order))
                                {
                                        if (attachment.getStencilLoadOp() == VK_ATTACHMENT_LOAD_OP_CLEAR)
-                                               clear(tcu::getSubregion(tcu::getEffectiveDepthStencilAccess(reference.getAccess(), tcu::Sampler::MODE_STENCIL), renderPos.x(), renderPos.y(), renderSize.x(), renderSize.y()), *renderPassClearValues[attachmentIndex]);
+                                               clearReferenceValues(reference, targetSize, renderPos, renderSize, BVec4(false, true, false, false), clearValueToPixelValue(*renderPassClearValues[attachmentIndex], format));
                                        else if (attachment.getStencilLoadOp() == VK_ATTACHMENT_LOAD_OP_DONT_CARE)
-                                       {
-                                               const tcu::TextureFormatInfo textureInfo = tcu::getTextureFormatInfo(reference.getFormat());
+                                               markUndefined(reference, BVec4(false, true, false, false), targetSize, renderPos, renderSize);
+                               }
 
-                                               tcu::fillWithGrid(tcu::getSubregion(tcu::getEffectiveDepthStencilAccess(reference.getAccess(), tcu::Sampler::MODE_STENCIL), renderPos.x(), renderPos.y(), renderSize.x(), renderSize.y()), 2, textureInfo.valueMin, textureInfo.valueMax);
-                                       }
-                               }
+                               attachmentUsed[attachmentIndex] = true;
                        }
-
-                       attachmentUsed[attachmentIndex] = true;
                }
 
                for (size_t colorClearNdx = 0; colorClearNdx < renderInfo.getColorClears().size(); colorClearNdx++)
                {
-                       const ColorClear&       colorClear      = renderInfo.getColorClears()[colorClearNdx];
-                       const UVec2                     offset          = colorClear.getOffset();
-                       const UVec2                     size            = colorClear.getSize();
-                       tcu::TextureLevel&      reference       = referenceAttachments[subpass.getColorAttachments()[colorClearNdx].getAttachment()];
-                       VkClearValue            value;
+                       const ColorClear&                       colorClear              = renderInfo.getColorClears()[colorClearNdx];
+                       const UVec2                                     offset                  = colorClear.getOffset();
+                       const UVec2                                     size                    = colorClear.getSize();
+                       const deUint32                          attachmentIndex = subpass.getColorAttachments()[colorClearNdx].getAttachment();
+                       const Attachment&                       attachment              = renderPassInfo.getAttachments()[attachmentIndex];
+                       const tcu::TextureFormat        format                  = mapVkFormat(attachment.getFormat());
+                       vector<PixelValue>&                     reference               = referenceAttachments[attachmentIndex];
+                       VkClearValue                            value;
 
                        value.color = colorClear.getColor();
 
-                       clear(tcu::getSubregion(reference.getAccess(), offset.x(), offset.y(), 0, size.x(), size.y(), 1), value);
+                       clearReferenceValues(reference, targetSize, offset, size, BVec4(true), clearValueToPixelValue(value, format));
                }
 
                if (renderInfo.getDepthStencilClear())
                {
-                       const DepthStencilClear&        dsClear         = *renderInfo.getDepthStencilClear();
-                       const UVec2                                     offset          = dsClear.getOffset();
-                       const UVec2                                     size            = dsClear.getSize();
-                       tcu::TextureLevel&                      reference       = referenceAttachments[subpass.getDepthStencilAttachment().getAttachment()];
+                       const DepthStencilClear&        dsClear                 = *renderInfo.getDepthStencilClear();
+                       const UVec2                                     offset                  = dsClear.getOffset();
+                       const UVec2                                     size                    = dsClear.getSize();
+                       const deUint32                          attachmentIndex = subpass.getDepthStencilAttachment().getAttachment();
+                       const Attachment&                       attachment              = renderPassInfo.getAttachments()[attachmentIndex];
+                       const tcu::TextureFormat        format                  = mapVkFormat(attachment.getFormat());
+                       const bool                                      hasStencil              = tcu::hasStencilComponent(format.order);
+                       const bool                                      hasDepth                = tcu::hasDepthComponent(format.order);
+                       vector<PixelValue>&                     reference               = referenceAttachments[attachmentIndex];
+                       VkClearValue                            value;
 
-                       if (tcu::hasDepthComponent(reference.getFormat().order))
-                               clearDepth(tcu::getSubregion(reference.getAccess(), offset.x(), offset.y(), 0, size.x(), size.y(), 1), dsClear.getDepth());
+                       value.depthStencil.depth = dsClear.getDepth();
+                       value.depthStencil.stencil = dsClear.getStencil();
 
-                       if (tcu::hasStencilComponent(reference.getFormat().order))
-                               clearStencil(tcu::getSubregion(reference.getAccess(), offset.x(), offset.y(), 0, size.x(), size.y(), 1), dsClear.getStencil());
+                       clearReferenceValues(reference, targetSize, offset, size, BVec4(hasDepth, hasStencil, false, false), clearValueToPixelValue(value, format));
                }
 
                if (renderInfo.getRenderQuad())
                {
                        const RenderQuad&       renderQuad      = *renderInfo.getRenderQuad();
-                       const Vec4                      posA            = renderQuad.getCornerA();
-                       const Vec4                      posB            = renderQuad.getCornerB();
+                       const Vec2                      posA            = renderQuad.getCornerA();
+                       const Vec2                      posB            = renderQuad.getCornerB();
                        const Vec2                      origin          = Vec2((float)renderInfo.getViewportOffset().x(), (float)renderInfo.getViewportOffset().y()) + Vec2((float)renderInfo.getViewportSize().x(), (float)renderInfo.getViewportSize().y()) / Vec2(2.0f);
                        const Vec2                      p                       = Vec2((float)renderInfo.getViewportSize().x(), (float)renderInfo.getViewportSize().y()) / Vec2(2.0f);
-                       const IVec2                     posAI           ((deInt32)(origin.x() + (p.x() * posA.x())),
-                                                                                        (deInt32)(origin.y() + (p.y() * posA.y())));
-                       const IVec2                     posBI           ((deInt32)(origin.x() + (p.x() * posB.x())),
-                                                                                        (deInt32)(origin.y() + (p.y() * posB.y())));
+                       const IVec2                     posAI           (deRoundFloatToInt32(origin.x() + (p.x() * posA.x())),
+                                                                                        deRoundFloatToInt32(origin.y() + (p.y() * posA.y())));
+                       const IVec2                     posBI           (deRoundFloatToInt32(origin.x() + (p.x() * posB.x())),
+                                                                                        deRoundFloatToInt32(origin.y() + (p.y() * posB.y())));
 
-                       for (size_t attachmentRefNdx = 0; attachmentRefNdx < subpass.getColorAttachments().size(); attachmentRefNdx++)
-                       {
-                               const Attachment                                attachment                      = renderPassInfo.getAttachments()[subpass.getColorAttachments()[attachmentRefNdx].getAttachment()];
-                               const tcu::TextureFormatInfo    textureInfo                     = tcu::getTextureFormatInfo(mapVkFormat(attachment.getFormat()));
-                               tcu::TextureLevel&                              referenceTexture        = referenceAttachments[subpass.getColorAttachments()[attachmentRefNdx].getAttachment()];
-                               const bool                                              srgb                            = tcu::isSRGB(referenceTexture.getFormat());
-                               const PixelBufferAccess reference                       = referenceTexture.getAccess();
-                               const float                                             clampMin                        = (float)(-MAX_INTEGER_VALUE);
-                               const float                                             clampMax                        = (float)(MAX_INTEGER_VALUE);
-                               const Vec4                                              valueMax                        (de::clamp(textureInfo.valueMax[0], clampMin, clampMax),
-                                                                                                                                        de::clamp(textureInfo.valueMax[1], clampMin, clampMax),
-                                                                                                                                        de::clamp(textureInfo.valueMax[2], clampMin, clampMax),
-                                                                                                                                        de::clamp(textureInfo.valueMax[3], clampMin, clampMax));
-
-                               const Vec4                                              valueMin                        (de::clamp(textureInfo.valueMin[0], clampMin, clampMax),
-                                                                                                                                        de::clamp(textureInfo.valueMin[1], clampMin, clampMax),
-                                                                                                                                        de::clamp(textureInfo.valueMin[2], clampMin, clampMax),
-                                                                                                                                        de::clamp(textureInfo.valueMin[3], clampMin, clampMax));
+                       DE_ASSERT(posAI.x() < posBI.x());
+                       DE_ASSERT(posAI.y() < posBI.y());
 
-                               DE_ASSERT(posAI.x() < posBI.x());
-                               DE_ASSERT(posAI.y() < posBI.y());
+                       if (subpass.getInputAttachments().empty())
+                       {
+                               for (size_t attachmentRefNdx = 0; attachmentRefNdx < subpass.getColorAttachments().size(); attachmentRefNdx++)
+                               {
+                                       const deUint32                          attachmentIndex = subpass.getColorAttachments()[attachmentRefNdx].getAttachment();
+                                       const Attachment&                       attachment              = renderPassInfo.getAttachments()[attachmentIndex];
+                                       const tcu::TextureFormat        format                  = mapVkFormat(attachment.getFormat());
+                                       const tcu::BVec4                        channelMask             = tcu::getTextureFormatChannelMask(format);
+                                       vector<PixelValue>&                     reference               = referenceAttachments[attachmentIndex];
+
+                                       for (int y = posAI.y(); y < (int)posBI.y(); y++)
+                                       for (int x = posAI.x(); x < (int)posBI.x(); x++)
+                                       {
+                                               for (int compNdx = 0; compNdx < 4; compNdx++)
+                                               {
+                                                       const size_t    index   = subpassNdx + attachmentIndex + compNdx;
+                                                       const BoolOp    op              = boolOpFromIndex(index);
+                                                       const bool              boolX   = x % 2 == (int)(index % 2);
+                                                       const bool              boolY   = y % 2 == (int)((index / 2) % 2);
+
+                                                       if (channelMask[compNdx])
+                                                               reference[x + y * targetSize.x()].setValue(compNdx, performBoolOp(op, boolX, boolY));
+                                               }
+                                       }
+                               }
 
-                               for (int y = posAI.y(); y <= (int)posBI.y(); y++)
-                               for (int x = posAI.x(); x <= (int)posBI.x(); x++)
+                               if (subpass.getDepthStencilAttachment().getAttachment() != VK_ATTACHMENT_UNUSED)
                                {
-                                       const Vec4      uvs             = computeUvs(posAI, posBI, IVec2(x, y));
-                                       const Vec4      color   = valueMax * uvs + valueMin * (Vec4(1.0f) - uvs);
+                                       const deUint32                          attachmentIndex = subpass.getDepthStencilAttachment().getAttachment();
+                                       const Attachment&                       attachment              = renderPassInfo.getAttachments()[attachmentIndex];
+                                       const tcu::TextureFormat        format                  = mapVkFormat(attachment.getFormat());
+                                       vector<PixelValue>&                     reference               = referenceAttachments[attachmentIndex];
 
-                                       if (srgb)
-                                               reference.setPixel(tcu::linearToSRGB(color), x, y);
-                                       else
-                                               reference.setPixel(color, x, y);
+                                       for (int y = posAI.y(); y < (int)posBI.y(); y++)
+                                       for (int x = posAI.x(); x < (int)posBI.x(); x++)
+                                       {
+                                               if (tcu::hasDepthComponent(format.order))
+                                               {
+                                                       const size_t    index   = subpassNdx + 1;
+                                                       const BoolOp    op              = boolOpFromIndex(index);
+                                                       const bool              boolX   = x % 2 == (int)(index % 2);
+                                                       const bool              boolY   = y % 2 == (int)((index / 2) % 2);
+
+                                                       reference[x + y * targetSize.x()].setValue(0, performBoolOp(op, boolX, boolY));
+                                               }
+
+                                               if (tcu::hasStencilComponent(format.order))
+                                               {
+                                                       const size_t    index   = subpassNdx;
+                                                       reference[x + y * targetSize.x()].setValue(1, (index % 2) == 0);
+                                               }
+                                       }
                                }
                        }
-
-                       if (subpass.getDepthStencilAttachment().getAttachment() != VK_ATTACHMENT_UNUSED)
+                       else
                        {
-                               tcu::TextureLevel&                              referenceTexture        = referenceAttachments[subpass.getDepthStencilAttachment().getAttachment()];
-                               const PixelBufferAccess reference                       = referenceTexture.getAccess();
+                               size_t                                  outputComponentCount    = 0;
+                               vector<Maybe<bool> >    inputs;
 
                                DE_ASSERT(posAI.x() < posBI.x());
                                DE_ASSERT(posAI.y() < posBI.y());
 
-                               for (int y = posAI.y(); y <= (int)posBI.y(); y++)
-                               for (int x = posAI.x(); x <= (int)posBI.x(); x++)
+                               for (size_t attachmentRefNdx = 0; attachmentRefNdx < subpass.getColorAttachments().size(); attachmentRefNdx++)
                                {
-                                       const Vec4 uvs = computeUvs(posAI, posBI, IVec2(x, y));
-
-                                       if (tcu::hasDepthComponent(reference.getFormat().order))
-                                               reference.setPixDepth(uvs.x(), x, y);
+                                       const deUint32                          attachmentIndex = subpass.getColorAttachments()[attachmentRefNdx].getAttachment();
+                                       const Attachment&                       attachment              = renderPassInfo.getAttachments()[attachmentIndex];
+                                       const tcu::TextureFormat        format                  = mapVkFormat(attachment.getFormat());
+                                       const int                                       componentCount  = tcu::getNumUsedChannels(format.order);
 
-                                       if (tcu::hasStencilComponent(reference.getFormat().order))
-                                               reference.setPixStencil(STENCIL_VALUE, x, y);
+                                       outputComponentCount += (size_t)componentCount;
                                }
-                       }
-               }
-       }
 
-       // Mark all attachments that were used but not stored as undefined
-       for (size_t attachmentNdx = 0; attachmentNdx < renderPassInfo.getAttachments().size(); attachmentNdx++)
-       {
-               const Attachment                                attachment      = renderPassInfo.getAttachments()[attachmentNdx];
-               const tcu::TextureFormat                format          = mapVkFormat(attachment.getFormat());
-               const tcu::TextureFormatInfo    textureInfo     = tcu::getTextureFormatInfo(format);
-               tcu::TextureLevel&                              reference       = referenceAttachments[attachmentNdx];
-
-               if (attachmentUsed[attachmentNdx] && renderPassInfo.getAttachments()[attachmentNdx].getStoreOp() == VK_ATTACHMENT_STORE_OP_DONT_CARE)
-                       tcu::fillWithGrid(tcu::getSubregion(reference.getAccess(), renderPos.x(), renderPos.y(), renderSize.x(), renderSize.y()), 2, textureInfo.valueMin, textureInfo.valueMax);
-       }
-}
-
-Maybe<deUint32> findColorAttachment (const Subpass&                            subpass,
-                                                                        deUint32                                       attachmentIndex)
-{
-       for (size_t colorAttachmentNdx = 0; colorAttachmentNdx < subpass.getColorAttachments().size(); colorAttachmentNdx++)
-       {
-               if (subpass.getColorAttachments()[colorAttachmentNdx].getAttachment() == attachmentIndex)
-                       return tcu::just((deUint32)colorAttachmentNdx);
-       }
-
-       return tcu::nothing<deUint32>();
-}
-
-int calcFloatDiff (float a, float b)
-{
-       const deUint32          au              = tcu::Float32(a).bits();
-       const deUint32          bu              = tcu::Float32(b).bits();
+                               if (subpass.getDepthStencilAttachment().getAttachment() != VK_ATTACHMENT_UNUSED)
+                                       outputComponentCount++;
 
-       const bool                      asign   = (au & (0x1u << 31u)) != 0u;
-       const bool                      bsign   = (bu & (0x1u << 31u)) != 0u;
+                               for (int y = posAI.y(); y < (int)posBI.y(); y++)
+                               for (int x = posAI.x(); x < (int)posBI.x(); x++)
+                               {
+                                       for (size_t inputAttachmentNdx = 0; inputAttachmentNdx < subpass.getInputAttachments().size(); inputAttachmentNdx++)
+                                       {
+                                               const deUint32                          attachmentIndex = subpass.getInputAttachments()[inputAttachmentNdx].getAttachment();
+                                               const Attachment&                       attachment              = renderPassInfo.getAttachments()[attachmentIndex];
+                                               const tcu::TextureFormat        format                  = mapVkFormat(attachment.getFormat());
+                                               const int                                       componentCount  = tcu::getNumUsedChannels(format.order);
 
-       const deUint32          avalue  = (au & ((0x1u << 31u) - 1u));
-       const deUint32          bvalue  = (bu & ((0x1u << 31u) - 1u));
+                                               for (int compNdx = 0; compNdx < componentCount; compNdx++)
+                                                       inputs.push_back(referenceAttachments[attachmentIndex][x + y * targetSize.x()].getValue(compNdx));
+                                       }
 
-       if (asign != bsign)
-               return avalue + bvalue + 1u;
-       else if (avalue < bvalue)
-               return bvalue - avalue;
-       else
-               return avalue - bvalue;
-}
+                                       const size_t inputsPerOutput = inputs.size() >= outputComponentCount
+                                                                                                       ? ((inputs.size() / outputComponentCount)
+                                                                                                               + ((inputs.size() % outputComponentCount) != 0 ? 1 : 0))
+                                                                                                       : 1;
 
-bool comparePixelToDepthClearValue (const ConstPixelBufferAccess&      access,
-                                                                       int                                                             x,
-                                                                       int                                                             y,
-                                                                       float                                                   ref)
-{
-       const tcu::TextureFormat                format                  = tcu::getEffectiveDepthStencilTextureFormat(access.getFormat(), tcu::Sampler::MODE_DEPTH);
-       const tcu::TextureChannelClass  channelClass    = tcu::getTextureChannelClass(format.type);
+                                       size_t outputValueNdx = 0;
 
-       switch (channelClass)
-       {
-               case tcu::TEXTURECHANNELCLASS_UNSIGNED_FIXED_POINT:
-               case tcu::TEXTURECHANNELCLASS_SIGNED_FIXED_POINT:
-               {
-                       const int       bitDepth        = tcu::getTextureFormatBitDepth(format).x();
-                       const float     depth           = access.getPixDepth(x, y);
-                       const float     threshold       = 2.0f / (float)((1 << bitDepth) - 1);
+                                       for (size_t attachmentRefNdx = 0; attachmentRefNdx < subpass.getColorAttachments().size(); attachmentRefNdx++)
+                                       {
+                                               const deUint32                          attachmentIndex = subpass.getColorAttachments()[attachmentRefNdx].getAttachment();
+                                               const Attachment&                       attachment              = renderPassInfo.getAttachments()[attachmentIndex];
+                                               const tcu::TextureFormat        format                  = mapVkFormat(attachment.getFormat());
+                                               vector<PixelValue>&                     reference               = referenceAttachments[attachmentIndex];
+                                               const int                                       componentCount  = tcu::getNumUsedChannels(format.order);
+
+                                               for (int compNdx = 0; compNdx < componentCount; compNdx++)
+                                               {
+                                                       const size_t    index   = subpassNdx + attachmentIndex + outputValueNdx;
+                                                       const BoolOp    op              = boolOpFromIndex(index);
+                                                       const bool              boolX   = x % 2 == (int)(index % 2);
+                                                       const bool              boolY   = y % 2 == (int)((index / 2) % 2);
+                                                       Maybe<bool>             output  = tcu::just(performBoolOp(op, boolX, boolY));
+
+                                                       for (size_t i = 0; i < inputsPerOutput; i++)
+                                                       {
+                                                               if (!output)
+                                                                       break;
+                                                               else if (!inputs[((outputValueNdx + compNdx) * inputsPerOutput + i) % inputs.size()])
+                                                                       output = tcu::nothing<bool>();
+                                                               else
+                                                                       output = (*output) == (*inputs[((outputValueNdx + compNdx) * inputsPerOutput + i) % inputs.size()]);
+                                                       }
+
+                                                       if (output)
+                                                               reference[x + y * targetSize.x()].setValue(compNdx, *output);
+                                                       else
+                                                               reference[x + y * targetSize.x()].setUndefined(compNdx);
+                                               }
+
+                                               outputValueNdx += componentCount;
+                                       }
 
-                       return deFloatAbs(depth - ref) <= threshold;
-               }
+                                       if (subpass.getDepthStencilAttachment().getAttachment() != VK_ATTACHMENT_UNUSED)
+                                       {
+                                               const deUint32          attachmentIndex = subpass.getDepthStencilAttachment().getAttachment();
+                                               vector<PixelValue>&     reference               = referenceAttachments[attachmentIndex];
+                                               const size_t            index                   = subpassNdx + attachmentIndex;
+                                               const BoolOp            op                              = boolOpFromIndex(index);
+                                               const bool                      boolX                   = x % 2 == (int)(index % 2);
+                                               const bool                      boolY                   = y % 2 == (int)((index / 2) % 2);
+                                               Maybe<bool>                     output                  = tcu::just(performBoolOp(op, boolX, boolY));
+
+                                               for (size_t i = 0; i < inputsPerOutput; i++)
+                                               {
+                                                       if (!output)
+                                                               break;
+                                                       else if (inputs[(outputValueNdx * inputsPerOutput + i) % inputs.size()])
+                                                               output = (*output) == (*inputs[(outputValueNdx * inputsPerOutput + i) % inputs.size()]);
+                                                       else
+                                                               output = tcu::nothing<bool>();
+                                               }
+
+                                               if (output)
+                                                       reference[x + y * targetSize.x()].setValue(0, *output);
+                                               else
+                                                       reference[x + y * targetSize.x()].setUndefined(0);
+                                       }
 
-               case tcu::TEXTURECHANNELCLASS_FLOATING_POINT:
-               {
-                       const float     depth                   = access.getPixDepth(x, y);
-                       const int       mantissaBits    = tcu::getTextureFormatMantissaBitDepth(format).x();
-                       const int       threshold               = 10 * 1 << (23 - mantissaBits);
+                                       inputs.clear();
+                               }
 
-                       DE_ASSERT(mantissaBits <= 23);
+                               if (subpass.getDepthStencilAttachment().getAttachment() != VK_ATTACHMENT_UNUSED)
+                               {
+                                       const deUint32                          attachmentIndex = subpass.getDepthStencilAttachment().getAttachment();
+                                       const Attachment&                       attachment              = renderPassInfo.getAttachments()[attachmentIndex];
+                                       const tcu::TextureFormat        format                  = mapVkFormat(attachment.getFormat());
+                                       vector<PixelValue>&                     reference               = referenceAttachments[attachmentIndex];
 
-                       return calcFloatDiff(depth, ref) <= threshold;
+                                       if (tcu::hasStencilComponent(format.order))
+                                       {
+                                               for (int y = posAI.y(); y < (int)posBI.y(); y++)
+                                               for (int x = posAI.x(); x < (int)posBI.x(); x++)
+                                               {
+                                                       const size_t    index   = subpassNdx;
+                                                       reference[x + y * targetSize.x()].setValue(1, (index % 2) == 0);
+                                               }
+                                       }
+                               }
+                       }
                }
-
-               default:
-                       DE_FATAL("Invalid channel class");
-                       return false;
        }
-}
-
-bool comparePixelToStencilClearValue (const ConstPixelBufferAccess&    access,
-                                                                         int                                                   x,
-                                                                         int                                                   y,
-                                                                         deUint32                                              ref)
-{
-       const deUint32 stencil = access.getPixStencil(x, y);
-
-       return stencil == ref;
-}
 
-bool comparePixelToColorClearValue (const ConstPixelBufferAccess&      access,
-                                                                       int                                                             x,
-                                                                       int                                                             y,
-                                                                       const VkClearColorValue&                ref)
-{
-       const tcu::TextureFormat                format                  = access.getFormat();
-       const tcu::TextureChannelClass  channelClass    = tcu::getTextureChannelClass(format.type);
-       const BVec4                                             channelMask             = tcu::getTextureFormatChannelMask(format);
-
-       switch (channelClass)
+       // Mark all attachments that were used but not stored as undefined
+       for (size_t attachmentIndex = 0; attachmentIndex < renderPassInfo.getAttachments().size(); attachmentIndex++)
        {
-               case tcu::TEXTURECHANNELCLASS_UNSIGNED_FIXED_POINT:
-               case tcu::TEXTURECHANNELCLASS_SIGNED_FIXED_POINT:
-               {
-                       const IVec4     bitDepth        (tcu::getTextureFormatBitDepth(format));
-                       const Vec4      resColor        (access.getPixel(x, y));
-                       const Vec4      refColor        (ref.float32[0],
-                                                                        ref.float32[1],
-                                                                        ref.float32[2],
-                                                                        ref.float32[3]);
-                       const Vec4      threshold       (bitDepth[0] > 0 ? 20.0f / (float)((1 << bitDepth[0]) - 1) : 1.0f,
-                                                                        bitDepth[1] > 0 ? 20.0f / (float)((1 << bitDepth[1]) - 1) : 1.0f,
-                                                                        bitDepth[2] > 0 ? 20.0f / (float)((1 << bitDepth[2]) - 1) : 1.0f,
-                                                                        bitDepth[3] > 0 ? 20.0f / (float)((1 << bitDepth[3]) - 1) : 1.0f);
-
-                       if (tcu::isSRGB(access.getFormat()))
-                               return !(tcu::anyNotEqual(tcu::logicalAnd(lessThanEqual(tcu::absDiff(resColor, tcu::linearToSRGB(refColor)), threshold), channelMask), channelMask));
-                       else
-                               return !(tcu::anyNotEqual(tcu::logicalAnd(lessThanEqual(tcu::absDiff(resColor, refColor), threshold), channelMask), channelMask));
-               }
-
-               case tcu::TEXTURECHANNELCLASS_UNSIGNED_INTEGER:
-               {
-                       const UVec4     resColor        (access.getPixelUint(x, y));
-                       const UVec4     refColor        (ref.uint32[0],
-                                                                        ref.uint32[1],
-                                                                        ref.uint32[2],
-                                                                        ref.uint32[3]);
-                       const UVec4     threshold       (1);
-
-                       return !(tcu::anyNotEqual(tcu::logicalAnd(lessThanEqual(tcu::absDiff(resColor, refColor), threshold), channelMask), channelMask));
-               }
+               const Attachment                        attachment                                      = renderPassInfo.getAttachments()[attachmentIndex];
+               const tcu::TextureFormat        format                                          = mapVkFormat(attachment.getFormat());
+               vector<PixelValue>&                     reference                                       = referenceAttachments[attachmentIndex];
+               const bool                                      isStencilAttachment                     = hasStencilComponent(format.order);
+               const bool                                      isDepthOrStencilAttachment      = hasDepthComponent(format.order) || isStencilAttachment;
 
-               case tcu::TEXTURECHANNELCLASS_SIGNED_INTEGER:
+               if (attachmentUsed[attachmentIndex] && renderPassInfo.getAttachments()[attachmentIndex].getStoreOp() == VK_ATTACHMENT_STORE_OP_DONT_CARE)
                {
-                       const IVec4     resColor        (access.getPixelInt(x, y));
-                       const IVec4     refColor        (ref.int32[0],
-                                                                        ref.int32[1],
-                                                                        ref.int32[2],
-                                                                        ref.int32[3]);
-                       const IVec4     threshold       (1);
-
-                       return !(tcu::anyNotEqual(tcu::logicalAnd(lessThanEqual(tcu::absDiff(resColor, refColor), threshold), channelMask), channelMask));
-               }
-
-               case tcu::TEXTURECHANNELCLASS_FLOATING_POINT:
-               {
-                       const Vec4      resColor                (access.getPixel(x, y));
-                       const Vec4      refColor                (ref.float32[0],
-                                                                                ref.float32[1],
-                                                                                ref.float32[2],
-                                                                                ref.float32[3]);
-                       const IVec4     mantissaBits    (tcu::getTextureFormatMantissaBitDepth(format));
-                       const IVec4     threshold               (10 * IVec4(1) << (23 - mantissaBits));
-
-                       DE_ASSERT(tcu::allEqual(greaterThanEqual(threshold, IVec4(0)), BVec4(true)));
-
-                       for (int ndx = 0; ndx < 4; ndx++)
-                       {
-                               if (calcFloatDiff(resColor[ndx], refColor[ndx]) > threshold[ndx] && channelMask[ndx])
-                                       return false;
-                       }
-
-                       return true;
+                       if (isDepthOrStencilAttachment)
+                               markUndefined(reference, BVec4(true, false, false, false), targetSize, renderPos, renderSize);
+                       else
+                               markUndefined(reference, BVec4(true), targetSize, renderPos, renderSize);
                }
 
-               default:
-                       DE_FATAL("Invalid channel class");
-                       return false;
+               if (attachmentUsed[attachmentIndex] && isStencilAttachment && renderPassInfo.getAttachments()[attachmentIndex].getStencilStoreOp() == VK_ATTACHMENT_STORE_OP_DONT_CARE)
+                       markUndefined(reference, BVec4(false, true, false, false), targetSize, renderPos, renderSize);
        }
 }
 
-class PixelStatus
-{
-public:
-       enum Status
-       {
-               STATUS_UNDEFINED        = 0,
-               STATUS_OK                       = 1,
-               STATUS_FAIL                     = 2,
-
-               STATUS_LAST
-       };
-
-                       PixelStatus                     (Status color, Status depth, Status stencil)
-                               : m_status      ((deUint8)((color << COLOR_OFFSET)
-                                       | (depth << DEPTH_OFFSET)
-                                       | (stencil << STENCIL_OFFSET)))
-       {
-       }
-
-       Status  getColorStatus          (void) const { return (Status)((m_status & COLOR_MASK) >> COLOR_OFFSET); }
-       Status  getDepthStatus          (void) const { return (Status)((m_status & DEPTH_MASK) >> DEPTH_OFFSET); }
-       Status  getStencilStatus        (void) const { return (Status)((m_status & STENCIL_MASK) >> STENCIL_OFFSET); }
-
-       void    setColorStatus          (Status status)
-       {
-               DE_ASSERT(getColorStatus() == STATUS_UNDEFINED);
-               m_status |= (deUint8)(status << COLOR_OFFSET);
-       }
-
-       void    setDepthStatus          (Status status)
-       {
-               DE_ASSERT(getDepthStatus() == STATUS_UNDEFINED);
-               m_status |= (deUint8)(status << DEPTH_OFFSET);
-       }
-
-       void    setStencilStatus        (Status status)
-       {
-               DE_ASSERT(getStencilStatus() == STATUS_UNDEFINED);
-               m_status |= (deUint8)(status << STENCIL_OFFSET);
-       }
-
-private:
-       enum
-       {
-               COLOR_OFFSET    = 0,
-               DEPTH_OFFSET    = 2,
-               STENCIL_OFFSET  = 4,
-
-               COLOR_MASK              = (3<<COLOR_OFFSET),
-               DEPTH_MASK              = (3<<DEPTH_OFFSET),
-               STENCIL_MASK    = (3<<STENCIL_OFFSET),
-       };
-       deUint8 m_status;
-};
-
-void checkDepthRenderQuad (const ConstPixelBufferAccess&       result,
-                                                  const IVec2&                                         posA,
-                                                  const IVec2&                                         posB,
-                                                  vector<PixelStatus>&                         status)
+void renderReferenceImagesFromValues (vector<tcu::TextureLevel>&                       referenceImages,
+                                                                         const vector<vector<PixelValue> >&    referenceValues,
+                                                                         const UVec2&                                                  targetSize,
+                                                                         const RenderPass&                                             renderPassInfo)
 {
-       for (int y = posA.y(); y <= posB.y(); y++)
-       for (int x = posA.x(); x <= posB.x(); x++)
-       {
-               PixelStatus& pixelStatus = status[x + y * result.getWidth()];
+       referenceImages.resize(referenceValues.size());
 
-               if (pixelStatus.getDepthStatus() == PixelStatus::STATUS_UNDEFINED)
-               {
-                       const Vec4      minUvs          = computeUvs(posA, posB, IVec2(x-1, y-1));
-                       const Vec4      maxUvs          = computeUvs(posA, posB, IVec2(x+1, y+1));
-                       const bool      softCheck       = std::abs(x - posA.x()) <= 1 || std::abs(x - posB.x()) <= 1
-                                                                       || std::abs(y - posA.y()) <= 1 || std::abs(y - posB.y()) <= 1;
-                       const float     resDepth        = result.getPixDepth(x, y);
-
-                       if (resDepth >= minUvs.x() && resDepth <= maxUvs.x())
-                               pixelStatus.setDepthStatus(PixelStatus::STATUS_OK);
-                       else if (!softCheck)
-                               pixelStatus.setDepthStatus(PixelStatus::STATUS_FAIL);
-               }
-       }
-}
-
-void checkStencilRenderQuad (const ConstPixelBufferAccess&             result,
-                                                        const IVec2&                                           posA,
-                                                        const IVec2&                                           posB,
-                                                        vector<PixelStatus>&                           status)
-{
-       for (int y = posA.y(); y <= posB.y(); y++)
-       for (int x = posA.x(); x <= posB.x(); x++)
+       for (size_t attachmentNdx = 0; attachmentNdx < renderPassInfo.getAttachments().size(); attachmentNdx++)
        {
-               PixelStatus& pixelStatus = status[x + y * result.getWidth()];
-
-               if (pixelStatus.getStencilStatus() == PixelStatus::STATUS_UNDEFINED)
-               {
-                       const bool      softCheck       = std::abs(x - posA.x()) <= 1 || std::abs(x - posB.x()) <= 1
-                                                                       || std::abs(y - posA.y()) <= 1 || std::abs(y - posB.y()) <= 1;
-
-                       if (result.getPixStencil(x, y) == STENCIL_VALUE)
-                               pixelStatus.setStencilStatus(PixelStatus::STATUS_OK);
-                       else if (!softCheck)
-                               pixelStatus.setStencilStatus(PixelStatus::STATUS_FAIL);
-               }
-       }
-}
+               const Attachment                        attachment                      = renderPassInfo.getAttachments()[attachmentNdx];
+               const tcu::TextureFormat        format                          = mapVkFormat(attachment.getFormat());
+               const vector<PixelValue>&       reference                       = referenceValues[attachmentNdx];
+               const bool                                      hasDepth                        = tcu::hasDepthComponent(format.order);
+               const bool                                      hasStencil                      = tcu::hasStencilComponent(format.order);
+               const bool                                      hasDepthOrStencil       = hasDepth || hasStencil;
+               tcu::TextureLevel&                      referenceImage          = referenceImages[attachmentNdx];
 
-void checkColorRenderQuad (const ConstPixelBufferAccess&       result,
-                                                  const IVec2&                                         posA,
-                                                  const IVec2&                                         posB,
-                                                  vector<PixelStatus>&                         status)
-{
-       const tcu::TextureFormat&               format                          = result.getFormat();
-       const bool                                              srgb                            = tcu::isSRGB(format);
-       const tcu::TextureChannelClass  channelClass            = tcu::getTextureChannelClass(format.type);
-       const tcu::TextureFormatInfo    textureInfo                     = tcu::getTextureFormatInfo(format);
-       const float                                             clampMin                        = (float)(-MAX_INTEGER_VALUE);
-       const float                                             clampMax                        = (float)(MAX_INTEGER_VALUE);
-       const Vec4                                              valueMax                        (de::clamp(textureInfo.valueMax[0], clampMin, clampMax),
-                                                                                                                de::clamp(textureInfo.valueMax[1], clampMin, clampMax),
-                                                                                                                de::clamp(textureInfo.valueMax[2], clampMin, clampMax),
-                                                                                                                de::clamp(textureInfo.valueMax[3], clampMin, clampMax));
-
-       const Vec4                                              valueMin                        (de::clamp(textureInfo.valueMin[0], clampMin, clampMax),
-                                                                                                                de::clamp(textureInfo.valueMin[1], clampMin, clampMax),
-                                                                                                                de::clamp(textureInfo.valueMin[2], clampMin, clampMax),
-                                                                                                                de::clamp(textureInfo.valueMin[3], clampMin, clampMax));
-       const BVec4                                             channelMask                     = tcu::getTextureFormatChannelMask(format);
-
-       IVec4                                           formatBitDepths = tcu::getTextureFormatBitDepth(format);
-       Vec4                                            threshold = Vec4(1.0f) / Vec4((float)(1 << formatBitDepths.x()),
-                                                                                                                               (float)(1 << formatBitDepths.y()),
-                                                                                                                               (float)(1 << formatBitDepths.z()),
-                                                                                                                               (float)(1 << formatBitDepths.w()));
+               referenceImage.setStorage(format, targetSize.x(), targetSize.y());
 
-       switch (channelClass)
-       {
-               case tcu::TEXTURECHANNELCLASS_UNSIGNED_FIXED_POINT:
-               case tcu::TEXTURECHANNELCLASS_SIGNED_FIXED_POINT:
-               case tcu::TEXTURECHANNELCLASS_FLOATING_POINT:
+               if (hasDepthOrStencil)
                {
-                       for (int y = posA.y(); y <= posB.y(); y++)
-                       for (int x = posA.x(); x <= posB.x(); x++)
+                       if (hasDepth)
                        {
-                               PixelStatus& pixelStatus = status[x + y * result.getWidth()];
+                               const PixelBufferAccess depthAccess (tcu::getEffectiveDepthStencilAccess(referenceImage.getAccess(), tcu::Sampler::MODE_DEPTH));
 
-                               if (pixelStatus.getColorStatus() == PixelStatus::STATUS_UNDEFINED)
+                               for (deUint32 y = 0; y < targetSize.y(); y++)
+                               for (deUint32 x = 0; x < targetSize.x(); x++)
                                {
-                                       const Vec4      minDiff         = Vec4(1.0f) / (IVec4(1) << tcu::getTextureFormatMantissaBitDepth(format)).cast<float>();
-                                       const Vec4      minUvs          = computeUvs(posA, posB, IVec2(x-1, y-1));
-                                       const Vec4      maxUvs          = computeUvs(posA, posB, IVec2(x+1, y+1));
-                                       const bool      softCheck       = std::abs(x - posA.x()) <= 1 || std::abs(x - posB.x()) <= 1
-                                                                                       || std::abs(y - posA.y()) <= 1 || std::abs(y - posB.y()) <= 1;
-
-                                       const Vec4      resColor        (result.getPixel(x, y));
-
-                                       Vec4    minRefColor     = srgb ? tcu::linearToSRGB(valueMax * minUvs + valueMin * (Vec4(1.0f) - minUvs))
-                                                                                        : valueMax * minUvs + valueMin * (Vec4(1.0f) - minUvs) - threshold;
-                                       Vec4    maxRefColor     = srgb ? tcu::linearToSRGB(valueMax * maxUvs + valueMin * (Vec4(1.0f) - maxUvs))
-                                                                                        : valueMax * maxUvs + valueMin * (Vec4(1.0f) - maxUvs) + threshold;
-
-                                       // Take into account rounding and quantization
-                                       if (channelClass == tcu::TEXTURECHANNELCLASS_FLOATING_POINT)
-                                       {
-                                               minRefColor = tcu::min(minRefColor * (Vec4(1.0f) - minDiff), minRefColor * (Vec4(1.0f) + minDiff));
-                                               maxRefColor = tcu::max(maxRefColor * (Vec4(1.0f) - minDiff), maxRefColor * (Vec4(1.0f) + minDiff));
-                                       }
-                                       else
-                                       {
-                                               minRefColor = minRefColor - minDiff;
-                                               maxRefColor = maxRefColor + minDiff;
-                                       }
-
-                                       DE_ASSERT(minRefColor[0] <= maxRefColor[0]);
-                                       DE_ASSERT(minRefColor[1] <= maxRefColor[1]);
-                                       DE_ASSERT(minRefColor[2] <= maxRefColor[2]);
-                                       DE_ASSERT(minRefColor[3] <= maxRefColor[3]);
-
-                                       if (tcu::anyNotEqual(tcu::logicalAnd(
-                                                                                       tcu::logicalAnd(greaterThanEqual(resColor, minRefColor),
-                                                                                                                       lessThanEqual(resColor, maxRefColor)),
-                                                                                       channelMask), channelMask))
+                                       if (reference[x + y * targetSize.x()].getValue(0))
                                        {
-                                               if (!softCheck)
-                                                       pixelStatus.setColorStatus(PixelStatus::STATUS_FAIL);
+                                               if (*reference[x + y * targetSize.x()].getValue(0))
+                                                       depthAccess.setPixDepth(1.0f, x, y);
+                                               else
+                                                       depthAccess.setPixDepth(0.0f, x, y);
                                        }
-                                       else
-                                               pixelStatus.setColorStatus(PixelStatus::STATUS_OK);
+                                       else // Fill with 3x3 grid
+                                               depthAccess.setPixDepth(((x / 3) % 2) == ((y / 3) % 2) ? 0.33f : 0.66f, x, y);
                                }
                        }
 
-                       break;
-               }
-
-               case tcu::TEXTURECHANNELCLASS_UNSIGNED_INTEGER:
-               {
-                       for (int y = posA.y(); y <= posB.y(); y++)
-                       for (int x = posA.x(); x <= posB.x(); x++)
+                       if (hasStencil)
                        {
-                               PixelStatus& pixelStatus = status[x + y * result.getWidth()];
+                               const PixelBufferAccess stencilAccess (tcu::getEffectiveDepthStencilAccess(referenceImage.getAccess(), tcu::Sampler::MODE_STENCIL));
 
-                               if (pixelStatus.getColorStatus() == PixelStatus::STATUS_UNDEFINED)
+                               for (deUint32 y = 0; y < targetSize.y(); y++)
+                               for (deUint32 x = 0; x < targetSize.x(); x++)
                                {
-                                       const Vec4      minUvs                  = computeUvs(posA, posB, IVec2(x-1, y-1));
-                                       const Vec4      maxUvs                  = computeUvs(posA, posB, IVec2(x+1, y+1));
-                                       const bool      softCheck               = std::abs(x - posA.x()) <= 1 || std::abs(x - posB.x()) <= 1
-                                                                                               || std::abs(y - posA.y()) <= 1 || std::abs(y - posB.y()) <= 1;
-
-                                       const UVec4     resColor                (result.getPixelUint(x, y));
-
-                                       const Vec4      minRefColorF    = valueMax * minUvs + valueMin * (Vec4(1.0f) - minUvs);
-                                       const Vec4      maxRefColorF    = valueMax * maxUvs + valueMin * (Vec4(1.0f) - maxUvs);
-
-                                       const UVec4     minRefColor             (minRefColorF.asUint());
-                                       const UVec4     maxRefColor             (maxRefColorF.asUint());
-
-                                       DE_ASSERT(minRefColor[0] <= maxRefColor[0]);
-                                       DE_ASSERT(minRefColor[1] <= maxRefColor[1]);
-                                       DE_ASSERT(minRefColor[2] <= maxRefColor[2]);
-                                       DE_ASSERT(minRefColor[3] <= maxRefColor[3]);
-
-                                       if (tcu::anyNotEqual(tcu::logicalAnd(
-                                                                                       tcu::logicalAnd(greaterThanEqual(resColor, minRefColor),
-                                                                                                                       lessThanEqual(resColor, maxRefColor)),
-                                                                                       channelMask), channelMask))
+                                       if (reference[x + y * targetSize.x()].getValue(1))
                                        {
-                                               if (!softCheck)
-                                                       pixelStatus.setColorStatus(PixelStatus::STATUS_FAIL);
+                                               if (*reference[x + y * targetSize.x()].getValue(1))
+                                                       stencilAccess.setPixStencil(0xFFu, x, y);
+                                               else
+                                                       stencilAccess.setPixStencil(0x0u, x, y);
                                        }
-                                       else
-                                               pixelStatus.setColorStatus(PixelStatus::STATUS_OK);
+                                       else // Fill with 3x3 grid
+                                               stencilAccess.setPixStencil(((x / 3) % 2) == ((y / 3) % 2) ? 85 : 170, x, y);
                                }
                        }
-
-                       break;
                }
-
-               case tcu::TEXTURECHANNELCLASS_SIGNED_INTEGER:
+               else
                {
-                       for (int y = posA.y(); y <= posB.y(); y++)
-                       for (int x = posA.x(); x <= posB.x(); x++)
+                       for (deUint32 y = 0; y < targetSize.y(); y++)
+                       for (deUint32 x = 0; x < targetSize.x(); x++)
                        {
-                               PixelStatus& pixelStatus = status[x + y * result.getWidth()];
+                               tcu::Vec4 color;
 
-                               if (pixelStatus.getColorStatus() == PixelStatus::STATUS_UNDEFINED)
+                               for (int compNdx = 0; compNdx < 4; compNdx++)
                                {
-                                       const Vec4      minUvs                  = computeUvs(posA, posB, IVec2(x-1, y-1));
-                                       const Vec4      maxUvs                  = computeUvs(posA, posB, IVec2(x+1, y+1));
-                                       const bool      softCheck               = std::abs(x - posA.x()) <= 1 || std::abs(x - posB.x()) <= 1
-                                                                                               || std::abs(y - posA.y()) <= 1 || std::abs(y - posB.y()) <= 1;
-
-                                       const IVec4     resColor                (result.getPixelInt(x, y));
-
-                                       const Vec4      minRefColorF    = valueMax * minUvs + valueMin * (Vec4(1.0f) - minUvs);
-                                       const Vec4      maxRefColorF    = valueMax * maxUvs + valueMin * (Vec4(1.0f) - maxUvs);
-
-                                       const IVec4     minRefColor             (minRefColorF.asInt());
-                                       const IVec4     maxRefColor             (maxRefColorF.asInt());
-
-                                       DE_ASSERT(minRefColor[0] <= maxRefColor[0]);
-                                       DE_ASSERT(minRefColor[1] <= maxRefColor[1]);
-                                       DE_ASSERT(minRefColor[2] <= maxRefColor[2]);
-                                       DE_ASSERT(minRefColor[3] <= maxRefColor[3]);
-
-                                       if (tcu::anyNotEqual(tcu::logicalAnd(
-                                                                                       tcu::logicalAnd(greaterThanEqual(resColor, minRefColor),
-                                                                                                                       lessThanEqual(resColor, maxRefColor)),
-                                                                                       channelMask), channelMask))
+                                       if (reference[x + y * targetSize.x()].getValue(compNdx))
                                        {
-                                               if (!softCheck)
-                                                       pixelStatus.setColorStatus(PixelStatus::STATUS_FAIL);
+                                               if (*reference[x + y * targetSize.x()].getValue(compNdx))
+                                                       color[compNdx] = 1.0f;
+                                               else
+                                                       color[compNdx] = 0.0f;
                                        }
-                                       else
-                                               pixelStatus.setColorStatus(PixelStatus::STATUS_OK);
+                                       else // Fill with 3x3 grid
+                                               color[compNdx] = ((compNdx + (x / 3)) % 2) == ((y / 3) % 2) ? 0.33f : 0.66f;
                                }
-                       }
 
-                       break;
+                               referenceImage.getAccess().setPixel(color, x, y);
+                       }
                }
-
-               default:
-                       DE_FATAL("Invalid channel class");
        }
 }
 
-void checkColorClear (const ConstPixelBufferAccess&    result,
-                                         const UVec2&                                  offset,
-                                         const UVec2&                                  size,
-                                         vector<PixelStatus>&                  status,
-                                         const VkClearColorValue&              color)
+bool verifyColorAttachment (const vector<PixelValue>&          reference,
+                                                       const ConstPixelBufferAccess&   result,
+                                                       const PixelBufferAccess&                errorImage)
 {
-       DE_ASSERT(offset.x() + size.x() <= (deUint32)result.getWidth());
-       DE_ASSERT(offset.y() + size.y() <= (deUint32)result.getHeight());
+       const Vec4      red             (1.0f, 0.0f, 0.0f, 1.0f);
+       const Vec4      green   (0.0f, 1.0f, 0.0f, 1.0f);
+       bool            ok              = true;
 
-       DE_ASSERT(result.getWidth() * result.getHeight() == (int)status.size());
+       DE_ASSERT(result.getWidth() * result.getHeight() == (int)reference.size());
+       DE_ASSERT(result.getWidth() == errorImage.getWidth());
+       DE_ASSERT(result.getHeight() == errorImage.getHeight());
 
-       for (int y = offset.y(); y < (int)(offset.y() + size.y()); y++)
-       for (int x = offset.x(); x < (int)(offset.x() + size.x()); x++)
+       for (int y = 0; y < result.getHeight(); y++)
+       for (int x = 0; x < result.getWidth(); x++)
        {
-               PixelStatus& pixelStatus = status[x + y * result.getWidth()];
-
-               DE_ASSERT(x + y * result.getWidth() < (int)status.size());
+               const Vec4                      resultColor             = result.getPixel(x, y);
+               const PixelValue&       referenceValue  = reference[x + y * result.getWidth()];
+               bool                            pixelOk                 = true;
 
-               if (pixelStatus.getColorStatus() == PixelStatus::STATUS_UNDEFINED)
+               for (int compNdx = 0; compNdx < 4; compNdx++)
                {
-                       if (comparePixelToColorClearValue(result, x, y, color))
-                               pixelStatus.setColorStatus(PixelStatus::STATUS_OK);
-                       else
-                               pixelStatus.setColorStatus(PixelStatus::STATUS_FAIL);
-               }
-       }
-}
+                       const Maybe<bool> maybeValue = referenceValue.getValue(compNdx);
 
-void checkDepthClear (const ConstPixelBufferAccess&    result,
-                                         const UVec2&                                  offset,
-                                         const UVec2&                                  size,
-                                         vector<PixelStatus>&                  status,
-                                         float                                                 depth)
-{
-       for (int y = offset.y(); y < (int)(offset.y() + size.y()); y++)
-       for (int x = offset.x(); x < (int)(offset.x() + size.x()); x++)
-       {
-               PixelStatus&    pixelStatus     = status[x + y * result.getWidth()];
+                       if (maybeValue)
+                       {
+                               const bool value = *maybeValue;
 
-               if (pixelStatus.getDepthStatus() == PixelStatus::STATUS_UNDEFINED)
-               {
-                       if (comparePixelToDepthClearValue(result, x, y, depth))
-                               pixelStatus.setDepthStatus(PixelStatus::STATUS_OK);
-                       else
-                               pixelStatus.setDepthStatus(PixelStatus::STATUS_FAIL);
+                               if ((value && (resultColor[compNdx] != 1.0f))
+                                       || (!value && resultColor[compNdx] != 0.0f))
+                                       pixelOk = false;
+                       }
                }
-       }
-}
-
-void checkStencilClear (const ConstPixelBufferAccess&  result,
-                                               const UVec2&                                    offset,
-                                               const UVec2&                                    size,
-                                               vector<PixelStatus>&                    status,
-                                               deUint32                                                stencil)
-{
-       for (int y = offset.y(); y < (int)(offset.y() + size.y()); y++)
-       for (int x = offset.x(); x < (int)(offset.x() + size.x()); x++)
-       {
-               PixelStatus&    pixelStatus     = status[x + y * result.getWidth()];
 
-               if (pixelStatus.getStencilStatus() == PixelStatus::STATUS_UNDEFINED)
+               if (!pixelOk)
                {
-                       if (comparePixelToStencilClearValue(result, x, y, stencil))
-                               pixelStatus.setStencilStatus(PixelStatus::STATUS_OK);
-                       else
-                               pixelStatus.setStencilStatus(PixelStatus::STATUS_FAIL);
+                       errorImage.setPixel(red, x, y);
+                       ok = false;
                }
+               else
+                       errorImage.setPixel(green, x, y);
        }
+
+       return ok;
 }
 
-bool verifyAttachment (const ConstPixelBufferAccess&           result,
-                                          const Maybe<ConstPixelBufferAccess>& secondaryResult,
-                                          const RenderPass&                                    renderPassInfo,
-                                          const Maybe<VkClearValue>&                   renderPassClearValue,
-                                          const Maybe<VkClearValue>&                   imageClearValue,
-                                          const vector<Subpass>&                               subpasses,
-                                          const vector<SubpassRenderInfo>&             subpassRenderInfo,
-                                          const PixelBufferAccess&                             errorImage,
-                                          deUint32                                                             attachmentIndex,
-                                          const UVec2&                                                 renderPos,
-                                          const UVec2&                                                 renderSize)
+bool verifyDepthAttachment (const vector<PixelValue>&          reference,
+                                                       const ConstPixelBufferAccess&   result,
+                                                       const PixelBufferAccess&                errorImage)
 {
-       const tcu::TextureFormat&               format                          = result.getFormat();
-       const bool                                              hasDepth                        = tcu::hasDepthComponent(format.order);
-       const bool                                              hasStencil                      = tcu::hasStencilComponent(format.order);
-       const bool                                              isColorFormat           = !hasDepth && !hasStencil;
-       const PixelStatus                               initialStatus           (isColorFormat ? PixelStatus::STATUS_UNDEFINED : PixelStatus::STATUS_OK,
-                                                                                                                hasDepth ? PixelStatus::STATUS_UNDEFINED : PixelStatus::STATUS_OK,
-                                                                                                                hasStencil ? PixelStatus::STATUS_UNDEFINED : PixelStatus::STATUS_OK);
-
-       bool                                                    attachmentIsUsed        = false;
-       vector<PixelStatus>                             status                          (result.getWidth() * result.getHeight(), initialStatus);
-       tcu::clear(errorImage, Vec4(0.0f, 1.0f, 0.0f, 1.0f));
-
-       // Check if attachment is used
-       for (int subpassNdx = 0; subpassNdx < (int)subpasses.size(); subpassNdx++)
-       {
-               const Subpass&                  subpass                 = subpasses[subpassNdx];
-               const Maybe<deUint32>   attachmentNdx   = findColorAttachment(subpass, attachmentIndex);
-
-               if (attachmentNdx || subpass.getDepthStencilAttachment().getAttachment() == attachmentIndex)
-                       attachmentIsUsed = true;
-       }
+       const Vec4      red             (1.0f, 0.0f, 0.0f, 1.0f);
+       const Vec4      green   (0.0f, 1.0f, 0.0f, 1.0f);
+       bool            ok              = true;
 
-       // Set all pixels that have undefined values to OK
-       if (attachmentIsUsed && (((isColorFormat || hasDepth) && renderPassInfo.getAttachments()[attachmentIndex].getStoreOp() == VK_ATTACHMENT_STORE_OP_DONT_CARE)
-                                                       || (hasStencil && renderPassInfo.getAttachments()[attachmentIndex].getStencilStoreOp() == VK_ATTACHMENT_STORE_OP_DONT_CARE)))
-       {
-               for(int y = renderPos.y(); y < (int)(renderPos.y() + renderSize.y()); y++)
-               for(int x = renderPos.x(); x < (int)(renderPos.x() + renderSize.x()); x++)
-               {
-                       PixelStatus& pixelStatus = status[x + y * result.getWidth()];
-
-                       if (isColorFormat && renderPassInfo.getAttachments()[attachmentIndex].getStoreOp() == VK_ATTACHMENT_STORE_OP_DONT_CARE)
-                               pixelStatus.setColorStatus(PixelStatus::STATUS_OK);
-                       else
-                       {
-                               if (hasDepth && renderPassInfo.getAttachments()[attachmentIndex].getStoreOp() == VK_ATTACHMENT_STORE_OP_DONT_CARE)
-                                       pixelStatus.setDepthStatus(PixelStatus::STATUS_OK);
-
-                               if (hasStencil && renderPassInfo.getAttachments()[attachmentIndex].getStencilStoreOp() == VK_ATTACHMENT_STORE_OP_DONT_CARE)
-                                       pixelStatus.setStencilStatus(PixelStatus::STATUS_OK);
-                       }
-               }
-       }
+       DE_ASSERT(result.getWidth() * result.getHeight() == (int)reference.size());
+       DE_ASSERT(result.getWidth() == errorImage.getWidth());
+       DE_ASSERT(result.getHeight() == errorImage.getHeight());
 
-       // Check renderpass rendering results
-       if (renderPassInfo.getAttachments()[attachmentIndex].getStoreOp() == VK_ATTACHMENT_STORE_OP_STORE
-               || (hasStencil && renderPassInfo.getAttachments()[attachmentIndex].getStencilStoreOp() == VK_ATTACHMENT_STORE_OP_STORE))
+       for (int y = 0; y < result.getHeight(); y++)
+       for (int x = 0; x < result.getWidth(); x++)
        {
-               // Check subpass rendering results
-               for (int subpassNdx = (int)subpasses.size() - 1; subpassNdx >= 0; subpassNdx--)
-               {
-                       const Subpass&                          subpass                 = subpasses[subpassNdx];
-                       const SubpassRenderInfo&        renderInfo              = subpassRenderInfo[subpassNdx];
-                       const Maybe<deUint32>           attachmentNdx   = findColorAttachment(subpass, attachmentIndex);
-
-                       // Check rendered quad
-                       if (renderInfo.getRenderQuad() && (attachmentNdx || subpass.getDepthStencilAttachment().getAttachment() == attachmentIndex))
-                       {
-                               const RenderQuad&       renderQuad      = *renderInfo.getRenderQuad();
-                               const Vec4                      posA            = renderQuad.getCornerA();
-                               const Vec4                      posB            = renderQuad.getCornerB();
-                               const Vec2                      origin          = Vec2((float)renderInfo.getViewportOffset().x(), (float)renderInfo.getViewportOffset().y()) + Vec2((float)renderInfo.getViewportSize().x(), (float)renderInfo.getViewportSize().y()) / Vec2(2.0f);
-                               const Vec2                      p                       = Vec2((float)renderInfo.getViewportSize().x(), (float)renderInfo.getViewportSize().y()) / Vec2(2.0f);
-                               const IVec2                     posAI           ((deInt32)(origin.x() + (p.x() * posA.x())),
-                                                                                                (deInt32)(origin.y() + (p.y() * posA.y())));
-                               const IVec2                     posBI           ((deInt32)(origin.x() + (p.x() * posB.x())),
-                                                                                                (deInt32)(origin.y() + (p.y() * posB.y())));
-
-                               if (isColorFormat)
-                                       checkColorRenderQuad(result, posAI, posBI, status);
-                               else
-                               {
-                                       if (hasDepth)
-                                               checkDepthRenderQuad(result, posAI, posBI, status);
-
-                                       if (hasDepth && hasStencil)
-                                               checkStencilRenderQuad(*secondaryResult, posAI, posBI, status);
-                                       else if (hasStencil)
-                                               checkStencilRenderQuad(result, posAI, posBI, status);
-                               }
-                       }
-
-                       // Check color attachment clears
-                       if (attachmentNdx && !renderInfo.getColorClears().empty())
-                       {
-                               const ColorClear& clear = renderInfo.getColorClears()[*attachmentNdx];
+               bool pixelOk = true;
 
-                               checkColorClear(result, clear.getOffset(), clear.getSize(), status, clear.getColor());
-                       }
+               const float                     resultDepth             = result.getPixDepth(x, y);
+               const PixelValue&       referenceValue  = reference[x + y * result.getWidth()];
+               const Maybe<bool>       maybeValue              = referenceValue.getValue(0);
 
-                       // Check depth/stencil attachment clears
-                       if (subpass.getDepthStencilAttachment().getAttachment() == attachmentIndex && renderInfo.getDepthStencilClear())
-                       {
-                               const DepthStencilClear clear = *renderInfo.getDepthStencilClear();
-
-                               if (hasDepth)
-                                       checkDepthClear(result, clear.getOffset(), clear.getSize(), status, clear.getDepth());
+               if (maybeValue)
+               {
+                       const bool value = *maybeValue;
 
-                               if (hasDepth && hasStencil)
-                                       checkStencilClear(*secondaryResult, clear.getOffset(), clear.getSize(), status, clear.getStencil());
-                               else if (hasStencil)
-                                       checkStencilClear(result, clear.getOffset(), clear.getSize(), status, clear.getStencil());
-                       }
+                       if ((value && (resultDepth != 1.0f))
+                               || (!value && resultDepth != 0.0f))
+                               pixelOk = false;
                }
 
-               // Check renderpas clear results
-               if (attachmentIsUsed && renderPassClearValue)
+               if (!pixelOk)
                {
-                       if (isColorFormat)
-                       {
-                               if (renderPassInfo.getAttachments()[attachmentIndex].getLoadOp() == VK_ATTACHMENT_LOAD_OP_CLEAR)
-                                       checkColorClear(result, renderPos, renderSize, status, renderPassClearValue->color);
-                       }
-                       else
-                       {
-                               if (hasDepth && renderPassInfo.getAttachments()[attachmentIndex].getLoadOp() == VK_ATTACHMENT_LOAD_OP_CLEAR)
-                                       checkDepthClear(result, renderPos, renderSize, status, renderPassClearValue->depthStencil.depth);
-
-                               if (hasDepth && hasStencil && renderPassInfo.getAttachments()[attachmentIndex].getStencilLoadOp() == VK_ATTACHMENT_LOAD_OP_CLEAR)
-                                       checkStencilClear(*secondaryResult, renderPos, renderSize, status, renderPassClearValue->depthStencil.stencil);
-                               else if (hasStencil && renderPassInfo.getAttachments()[attachmentIndex].getStencilLoadOp() == VK_ATTACHMENT_LOAD_OP_CLEAR)
-                                       checkStencilClear(result, renderPos, renderSize, status, renderPassClearValue->depthStencil.stencil);
-                       }
+                       errorImage.setPixel(red, x, y);
+                       ok = false;
                }
+               else
+                       errorImage.setPixel(green, x, y);
        }
 
-       // Set all pixels that have undefined values fater renderpass to OK
-       if (attachmentIsUsed && (((isColorFormat || hasDepth) && renderPassInfo.getAttachments()[attachmentIndex].getLoadOp() == VK_ATTACHMENT_LOAD_OP_DONT_CARE)
-                                                       || (hasStencil && renderPassInfo.getAttachments()[attachmentIndex].getStencilLoadOp() == VK_ATTACHMENT_LOAD_OP_DONT_CARE)))
-       {
-               for(int y = renderPos.y(); y < (int)(renderPos.y() + renderSize.y()); y++)
-               for(int x = renderPos.x(); x < (int)(renderPos.x() + renderSize.x()); x++)
-               {
-                       PixelStatus& pixelStatus = status[x + y * result.getWidth()];
+       return ok;
+}
 
-                       if (pixelStatus.getColorStatus() == PixelStatus::STATUS_UNDEFINED
-                               && isColorFormat && renderPassInfo.getAttachments()[attachmentIndex].getLoadOp() == VK_ATTACHMENT_LOAD_OP_DONT_CARE)
-                               pixelStatus.setColorStatus(PixelStatus::STATUS_OK);
-                       else
-                       {
-                               if (pixelStatus.getDepthStatus() == PixelStatus::STATUS_UNDEFINED
-                                       && hasDepth && renderPassInfo.getAttachments()[attachmentIndex].getLoadOp() == VK_ATTACHMENT_LOAD_OP_DONT_CARE)
-                                       pixelStatus.setDepthStatus(PixelStatus::STATUS_OK);
+bool verifyStencilAttachment (const vector<PixelValue>&                reference,
+                                                         const ConstPixelBufferAccess& result,
+                                                         const PixelBufferAccess&              errorImage)
+{
+       const Vec4      red             (1.0f, 0.0f, 0.0f, 1.0f);
+       const Vec4      green   (0.0f, 1.0f, 0.0f, 1.0f);
+       bool            ok              = true;
 
-                               if (pixelStatus.getStencilStatus() == PixelStatus::STATUS_UNDEFINED
-                                       && hasStencil && renderPassInfo.getAttachments()[attachmentIndex].getStencilLoadOp() == VK_ATTACHMENT_LOAD_OP_DONT_CARE)
-                                       pixelStatus.setStencilStatus(PixelStatus::STATUS_OK);
-                       }
-               }
-       }
+       DE_ASSERT(result.getWidth() * result.getHeight() == (int)reference.size());
+       DE_ASSERT(result.getWidth() == errorImage.getWidth());
+       DE_ASSERT(result.getHeight() == errorImage.getHeight());
 
-       if (imageClearValue)
+       for (int y = 0; y < result.getHeight(); y++)
+       for (int x = 0; x < result.getWidth(); x++)
        {
-               if (isColorFormat)
-                       checkColorClear(result, UVec2(0, 0), UVec2(result.getWidth(), result.getHeight()), status, imageClearValue->color);
-               else
-               {
-                       if (hasDepth)
-                               checkDepthClear(result, UVec2(0, 0), UVec2(result.getWidth(), result.getHeight()), status, imageClearValue->depthStencil.depth);
-
-                       if (hasDepth && hasStencil)
-                               checkStencilClear(*secondaryResult, UVec2(0, 0), UVec2(secondaryResult->getWidth(), result.getHeight()), status, imageClearValue->depthStencil.stencil);
-                       else if (hasStencil)
-                               checkStencilClear(result, UVec2(0, 0), UVec2(result.getWidth(), result.getHeight()), status, imageClearValue->depthStencil.stencil);
-               }
-       }
+               bool pixelOk = true;
 
-       {
-               bool isOk = true;
+               const deUint32          resultStencil   = result.getPixStencil(x, y);
+               const PixelValue&       referenceValue  = reference[x + y * result.getWidth()];
+               const Maybe<bool>       maybeValue              = referenceValue.getValue(1);
 
-               for(int y = 0; y < result.getHeight(); y++)
-               for(int x = 0; x < result.getWidth(); x++)
+               if (maybeValue)
                {
-                       const PixelStatus& pixelStatus = status[x + y * result.getWidth()];
-
-                       if (isColorFormat)
-                       {
-                               if (pixelStatus.getColorStatus() != PixelStatus::STATUS_OK)
-                               {
-                                       if (pixelStatus.getColorStatus() == PixelStatus::STATUS_UNDEFINED)
-                                               errorImage.setPixel(Vec4(1.0f, 1.0f, 0.0f, 1.0f), x, y);
-                                       else if (pixelStatus.getColorStatus() == PixelStatus::STATUS_FAIL)
-                                               errorImage.setPixel(Vec4(1.0f, 0.0f, 0.0f, 1.0f), x, y);
-
-                                       isOk = false;
-                               }
-                       }
-                       else
-                       {
-                               if (hasDepth && pixelStatus.getDepthStatus() != PixelStatus::STATUS_OK)
-                               {
-                                       errorImage.setPixel(Vec4(1.0f, 0.0f, 0.0f, 1.0f), x, y);
-                                       isOk = false;
-                               }
+                       const bool value = *maybeValue;
 
-                               if (hasStencil && pixelStatus.getStencilStatus() != PixelStatus::STATUS_OK)
-                               {
-                                       errorImage.setPixel(Vec4(1.0f, 0.0f, 0.0f, 1.0f), x, y);
-                                       isOk = false;
-                               }
-                       }
+                       if ((value && (resultStencil != 0xFFu))
+                               || (!value && resultStencil != 0x0u))
+                               pixelOk = false;
                }
 
-               return isOk;
+               if (!pixelOk)
+               {
+                       errorImage.setPixel(red, x, y);
+                       ok = false;
+               }
+               else
+                       errorImage.setPixel(green, x, y);
        }
+
+       return ok;
 }
 
 bool logAndVerifyImages (TestLog&                                                                                      log,
@@ -3240,12 +3373,14 @@ bool logAndVerifyImages (TestLog&                                                                                       log,
                                                 const UVec2&                                                                           targetSize,
                                                 const TestConfig&                                                                      config)
 {
+       vector<vector<PixelValue> >     referenceValues;
        vector<tcu::TextureLevel>       referenceAttachments;
        bool                                            isOk                                    = true;
 
-       log << TestLog::Message << "Reference images fill undefined pixels with grid pattern." << TestLog::EndMessage;
+       log << TestLog::Message << "Reference images fill undefined pixels with 3x3 grid pattern." << TestLog::EndMessage;
 
-       renderReferenceImages(referenceAttachments, renderPassInfo, targetSize, imageClearValues, renderPassClearValues, subpassRenderInfo, config.renderPos, config.renderSize);
+       renderReferenceValues(referenceValues, renderPassInfo, targetSize, imageClearValues, renderPassClearValues, subpassRenderInfo, config.renderPos, config.renderSize);
+       renderReferenceImagesFromValues(referenceAttachments, referenceValues, targetSize, renderPassInfo);
 
        for (size_t attachmentNdx = 0; attachmentNdx < renderPassInfo.getAttachments().size(); attachmentNdx++)
        {
@@ -3256,15 +3391,15 @@ bool logAndVerifyImages (TestLog&                                                                                       log,
 
                        if (tcu::hasDepthComponent(format.order) && tcu::hasStencilComponent(format.order))
                        {
-                               const tcu::TextureFormat        depthFormat             = getDepthCopyFormat(attachment.getFormat());
-                               const VkDeviceSize                      depthBufferSize = targetSize.x() * targetSize.y() * depthFormat.getPixelSize();
-                               void* const                                     depthPtr                = attachmentResources[attachmentNdx]->getResultMemory().getHostPtr();
+                               const tcu::TextureFormat        depthFormat                     = getDepthCopyFormat(attachment.getFormat());
+                               const VkDeviceSize                      depthBufferSize         = targetSize.x() * targetSize.y() * depthFormat.getPixelSize();
+                               void* const                                     depthPtr                        = attachmentResources[attachmentNdx]->getResultMemory().getHostPtr();
 
                                const tcu::TextureFormat        stencilFormat           = getStencilCopyFormat(attachment.getFormat());
                                const VkDeviceSize                      stencilBufferSize       = targetSize.x() * targetSize.y() * stencilFormat.getPixelSize();
                                void* const                                     stencilPtr                      = attachmentResources[attachmentNdx]->getSecondaryResultMemory().getHostPtr();
 
-                               const VkMappedMemoryRange       ranges[] =
+                               const VkMappedMemoryRange       ranges[]                        =
                                {
                                        {
                                                VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE,                                                          // sType;
@@ -3284,19 +3419,27 @@ bool logAndVerifyImages (TestLog&                                                                                       log,
                                VK_CHECK(vk.invalidateMappedMemoryRanges(device, 2u, ranges));
 
                                {
-                                       const ConstPixelBufferAccess    depthAccess             (depthFormat, targetSize.x(), targetSize.y(), 1, depthPtr);
-                                       const ConstPixelBufferAccess    stencilAccess   (stencilFormat, targetSize.x(), targetSize.y(), 1, stencilPtr);
-                                       tcu::TextureLevel                               errorImage              (tcu::TextureFormat(tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT8), targetSize.x(), targetSize.y());
+                                       const ConstPixelBufferAccess    depthAccess                     (depthFormat, targetSize.x(), targetSize.y(), 1, depthPtr);
+                                       const ConstPixelBufferAccess    stencilAccess           (stencilFormat, targetSize.x(), targetSize.y(), 1, stencilPtr);
+                                       tcu::TextureLevel                               depthErrorImage         (tcu::TextureFormat(tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT8), targetSize.x(), targetSize.y());
+                                       tcu::TextureLevel                               stencilErrorImage       (tcu::TextureFormat(tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT8), targetSize.x(), targetSize.y());
 
                                        log << TestLog::Image("Attachment" + de::toString(attachmentNdx) + "Depth", "Attachment " + de::toString(attachmentNdx) + " Depth", depthAccess);
                                        log << TestLog::Image("Attachment" + de::toString(attachmentNdx) + "Stencil", "Attachment " + de::toString(attachmentNdx) + " Stencil", stencilAccess);
 
                                        log << TestLog::Image("AttachmentReference" + de::toString(attachmentNdx), "Attachment reference " + de::toString(attachmentNdx), referenceAttachments[attachmentNdx].getAccess());
 
-                                       if ((renderPassInfo.getAttachments()[attachmentNdx].getStoreOp() == VK_ATTACHMENT_STORE_OP_STORE || renderPassInfo.getAttachments()[attachmentNdx].getStencilStoreOp() == VK_ATTACHMENT_STORE_OP_STORE)
-                                               && !verifyAttachment(depthAccess, tcu::just(stencilAccess), renderPassInfo, renderPassClearValues[attachmentNdx], imageClearValues[attachmentNdx], renderPassInfo.getSubpasses(), subpassRenderInfo, errorImage.getAccess(), (deUint32)attachmentNdx, config.renderPos, config.renderSize))
+                                       if (renderPassInfo.getAttachments()[attachmentNdx].getStoreOp() == VK_ATTACHMENT_STORE_OP_STORE
+                                               && !verifyDepthAttachment(referenceValues[attachmentNdx], depthAccess, depthErrorImage.getAccess()))
                                        {
-                                               log << TestLog::Image("AttachmentError" + de::toString(attachmentNdx), "Attachment Error " + de::toString(attachmentNdx), errorImage.getAccess());
+                                               log << TestLog::Image("DepthAttachmentError" + de::toString(attachmentNdx), "Depth Attachment Error " + de::toString(attachmentNdx), depthErrorImage.getAccess());
+                                               isOk = false;
+                                       }
+
+                                       if (renderPassInfo.getAttachments()[attachmentNdx].getStencilStoreOp() == VK_ATTACHMENT_STORE_OP_STORE
+                                               && !verifyStencilAttachment(referenceValues[attachmentNdx], stencilAccess, stencilErrorImage.getAccess()))
+                                       {
+                                               log << TestLog::Image("StencilAttachmentError" + de::toString(attachmentNdx), "Stencil Attachment Error " + de::toString(attachmentNdx), stencilErrorImage.getAccess());
                                                isOk = false;
                                        }
                                }
@@ -3306,7 +3449,7 @@ bool logAndVerifyImages (TestLog&                                                                                 log,
                                const VkDeviceSize                      bufferSize      = targetSize.x() * targetSize.y() * format.getPixelSize();
                                void* const                                     ptr                     = attachmentResources[attachmentNdx]->getResultMemory().getHostPtr();
 
-                               const VkMappedMemoryRange       range   =
+                               const VkMappedMemoryRange       range           =
                                {
                                        VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE,                                                          // sType;
                                        DE_NULL,                                                                                                                        // pNext;
@@ -3316,6 +3459,37 @@ bool logAndVerifyImages (TestLog&                                                                                        log,
                                };
                                VK_CHECK(vk.invalidateMappedMemoryRanges(device, 1u, &range));
 
+                               if (tcu::hasDepthComponent(format.order))
+                               {
+                                       const ConstPixelBufferAccess    access          (format, targetSize.x(), targetSize.y(), 1, ptr);
+                                       tcu::TextureLevel                               errorImage      (tcu::TextureFormat(tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT8), targetSize.x(), targetSize.y());
+
+                                       log << TestLog::Image("Attachment" + de::toString(attachmentNdx), "Attachment " + de::toString(attachmentNdx), access);
+                                       log << TestLog::Image("AttachmentReference" + de::toString(attachmentNdx), "Attachment reference " + de::toString(attachmentNdx), referenceAttachments[attachmentNdx].getAccess());
+
+                                       if ((renderPassInfo.getAttachments()[attachmentNdx].getStoreOp() == VK_ATTACHMENT_STORE_OP_STORE || renderPassInfo.getAttachments()[attachmentNdx].getStencilStoreOp() == VK_ATTACHMENT_STORE_OP_STORE)
+                                               && !verifyDepthAttachment(referenceValues[attachmentNdx], access, errorImage.getAccess()))
+                                       {
+                                               log << TestLog::Image("AttachmentError" + de::toString(attachmentNdx), "Attachment Error " + de::toString(attachmentNdx), errorImage.getAccess());
+                                               isOk = false;
+                                       }
+                               }
+                               else if (tcu::hasStencilComponent(format.order))
+                               {
+                                       const ConstPixelBufferAccess    access          (format, targetSize.x(), targetSize.y(), 1, ptr);
+                                       tcu::TextureLevel                               errorImage      (tcu::TextureFormat(tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT8), targetSize.x(), targetSize.y());
+
+                                       log << TestLog::Image("Attachment" + de::toString(attachmentNdx), "Attachment " + de::toString(attachmentNdx), access);
+                                       log << TestLog::Image("AttachmentReference" + de::toString(attachmentNdx), "Attachment reference " + de::toString(attachmentNdx), referenceAttachments[attachmentNdx].getAccess());
+
+                                       if ((renderPassInfo.getAttachments()[attachmentNdx].getStoreOp() == VK_ATTACHMENT_STORE_OP_STORE || renderPassInfo.getAttachments()[attachmentNdx].getStencilStoreOp() == VK_ATTACHMENT_STORE_OP_STORE)
+                                               && !verifyStencilAttachment(referenceValues[attachmentNdx], access, errorImage.getAccess()))
+                                       {
+                                               log << TestLog::Image("AttachmentError" + de::toString(attachmentNdx), "Attachment Error " + de::toString(attachmentNdx), errorImage.getAccess());
+                                               isOk = false;
+                                       }
+                               }
+                               else
                                {
                                        const ConstPixelBufferAccess    access          (format, targetSize.x(), targetSize.y(), 1, ptr);
                                        tcu::TextureLevel                               errorImage      (tcu::TextureFormat(tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT8), targetSize.x(), targetSize.y());
@@ -3324,7 +3498,7 @@ bool logAndVerifyImages (TestLog&                                                                                 log,
                                        log << TestLog::Image("AttachmentReference" + de::toString(attachmentNdx), "Attachment reference " + de::toString(attachmentNdx), referenceAttachments[attachmentNdx].getAccess());
 
                                        if ((renderPassInfo.getAttachments()[attachmentNdx].getStoreOp() == VK_ATTACHMENT_STORE_OP_STORE || renderPassInfo.getAttachments()[attachmentNdx].getStencilStoreOp() == VK_ATTACHMENT_STORE_OP_STORE)
-                                               && !verifyAttachment(access, tcu::nothing<ConstPixelBufferAccess>(), renderPassInfo, renderPassClearValues[attachmentNdx], imageClearValues[attachmentNdx], renderPassInfo.getSubpasses(), subpassRenderInfo, errorImage.getAccess(), (deUint32)attachmentNdx, config.renderPos, config.renderSize))
+                                               && !verifyColorAttachment(referenceValues[attachmentNdx], access, errorImage.getAccess()))
                                        {
                                                log << TestLog::Image("AttachmentError" + de::toString(attachmentNdx), "Attachment Error " + de::toString(attachmentNdx), errorImage.getAccess());
                                                isOk = false;
@@ -3337,6 +3511,30 @@ bool logAndVerifyImages (TestLog&                                                                                        log,
        return isOk;
 }
 
+std::string getInputAttachmentType (VkFormat vkFormat)
+{
+       const tcu::TextureFormat                format                  = mapVkFormat(vkFormat);
+       const tcu::TextureChannelClass  channelClass    = tcu::getTextureChannelClass(format.type);
+
+       switch (channelClass)
+       {
+               case tcu::TEXTURECHANNELCLASS_SIGNED_INTEGER:
+                       return "isubpassInput";
+
+               case tcu::TEXTURECHANNELCLASS_UNSIGNED_INTEGER:
+                       return "usubpassInput";
+
+               case tcu::TEXTURECHANNELCLASS_SIGNED_FIXED_POINT:
+               case tcu::TEXTURECHANNELCLASS_UNSIGNED_FIXED_POINT:
+               case tcu::TEXTURECHANNELCLASS_FLOATING_POINT:
+                       return "subpassInput";
+
+               default:
+                       DE_FATAL("Unknown channel class");
+                       return "";
+       }
+}
+
 std::string getAttachmentType (VkFormat vkFormat)
 {
        const tcu::TextureFormat                format                  = mapVkFormat(vkFormat);
@@ -3369,22 +3567,50 @@ void createTestShaders (SourceCollections& dst, TestConfig config)
 
                for (size_t subpassNdx = 0; subpassNdx < subpasses.size(); subpassNdx++)
                {
-                       const Subpass&          subpass         = subpasses[subpassNdx];
+                       const Subpass&          subpass                                 = subpasses[subpassNdx];
+                       deUint32                        inputAttachmentBinding  = 0;
                        std::ostringstream      vertexShader;
                        std::ostringstream      fragmentShader;
 
                        vertexShader << "#version 310 es\n"
-                                                << "layout(location = 0) in highp vec4 a_position;\n"
-                                                << "layout(location = 0) out highp vec2 v_color;\n"
+                                                << "layout(location = 0) in highp vec2 a_position;\n"
                                                 << "void main (void) {\n"
-                                                << "\thighp float a = 0.5 + a_position.x;\n"
-                                                << "\thighp float b = 0.5 + a_position.y;\n"
-                                                << "\tv_color = vec2(a, b);\n"
-                                                << "\tgl_Position = a_position;\n"
+                                                << "\tgl_Position = vec4(a_position, 1.0, 1.0);\n"
                                                 << "}\n";
 
                        fragmentShader << "#version 310 es\n"
-                                                  << "layout(location = 0) in highp vec2 v_color;\n";
+                                                  << "precision highp float;\n";
+
+                       for (size_t attachmentNdx = 0; attachmentNdx < subpass.getInputAttachments().size(); attachmentNdx++)
+                       {
+                               const deUint32                          attachmentIndex = subpass.getInputAttachments()[attachmentNdx].getAttachment();
+                               const Attachment                        attachment              = config.renderPass.getAttachments()[attachmentIndex];
+                               const tcu::TextureFormat        format                  = mapVkFormat(attachment.getFormat());
+                               const bool                                      isDepthFormat   = tcu::hasDepthComponent(format.order);
+                               const bool                                      isStencilFormat = tcu::hasStencilComponent(format.order);
+
+                               if (isDepthFormat || isStencilFormat)
+                               {
+                                       if (isDepthFormat)
+                                       {
+                                               fragmentShader << "layout(input_attachment_index = " << attachmentNdx << ", set=0, binding=" << inputAttachmentBinding << ") uniform highp subpassInput i_depth" << attachmentNdx << ";\n";
+                                               inputAttachmentBinding++;
+                                       }
+
+                                       if (isStencilFormat)
+                                       {
+                                               fragmentShader << "layout(input_attachment_index = " << attachmentNdx << ", set=0, binding=" << inputAttachmentBinding << ") uniform highp usubpassInput i_stencil" << attachmentNdx << ";\n";
+                                               inputAttachmentBinding++;
+                                       }
+                               }
+                               else
+                               {
+                                       const std::string attachmentType = getInputAttachmentType(attachment.getFormat());
+
+                                       fragmentShader << "layout(input_attachment_index = " << attachmentNdx << ", set=0, binding=" << inputAttachmentBinding << ") uniform highp " << attachmentType << " i_color" << attachmentNdx << ";\n";
+                                       inputAttachmentBinding++;
+                               }
+                       }
 
                        for (size_t attachmentNdx = 0; attachmentNdx < subpass.getColorAttachments().size(); attachmentNdx++)
                        {
@@ -3392,27 +3618,180 @@ void createTestShaders (SourceCollections& dst, TestConfig config)
                                fragmentShader << "layout(location = " << attachmentNdx << ") out highp " << attachmentType << " o_color" << attachmentNdx << ";\n";
                        }
 
-                       fragmentShader  << "void main (void) {\n"
-                                                       << "\thighp vec4 scale = vec4(v_color.x, v_color.y, v_color.x * v_color.y, (v_color.x + v_color.y) / 2.0);\n";
+                       fragmentShader << "void main (void) {\n";
 
-                       for (size_t attachmentNdx = 0; attachmentNdx < subpass.getColorAttachments().size(); attachmentNdx++)
+                       if (subpass.getInputAttachments().empty())
+                       {
+                               for (size_t attachmentNdx = 0; attachmentNdx < subpass.getColorAttachments().size(); attachmentNdx++)
+                               {
+                                       const deUint32          attachmentIndex = subpass.getColorAttachments()[attachmentNdx].getAttachment();
+                                       const std::string       attachmentType  = getAttachmentType(config.renderPass.getAttachments()[attachmentIndex].getFormat());
+
+                                       fragmentShader << "\to_color" << attachmentNdx << " = " << attachmentType << "(vec4(";
+
+                                       for (size_t compNdx = 0; compNdx < 4; compNdx++)
+                                       {
+                                               const size_t    index   = subpassNdx + attachmentIndex + compNdx;
+                                               const BoolOp    op              = boolOpFromIndex(index);
+
+                                               if (compNdx > 0)
+                                                       fragmentShader << ",\n\t\t";
+
+                                               fragmentShader  << "((int(gl_FragCoord.x) % 2 == " << (index % 2)
+                                                                               << ") " << boolOpToString(op) << " ("
+                                                                               << "int(gl_FragCoord.y) % 2 == " << ((index / 2) % 2)
+                                                                               << ") ? 1.0 : 0.0)";
+                                       }
+
+                                       fragmentShader << "));\n";
+                               }
+
+                               if (subpass.getDepthStencilAttachment().getAttachment() != VK_ATTACHMENT_UNUSED)
+                               {
+                                       const size_t    index   = subpassNdx + 1;
+                                       const BoolOp    op              = boolOpFromIndex(index);
+
+                                       fragmentShader  << "\tgl_FragDepth = ((int(gl_FragCoord.x) % 2 == " << (index % 2)
+                                                                       << ") " << boolOpToString(op) << " ("
+                                                                       << "int(gl_FragCoord.y) % 2 == " << ((index / 2) % 2)
+                                                                       << ") ? 1.0 : 0.0);\n";
+                               }
+                       }
+                       else
                        {
-                               const tcu::TextureFormat                format                  = mapVkFormat(config.renderPass.getAttachments()[subpass.getColorAttachments()[attachmentNdx].getAttachment()].getFormat());
-                               const tcu::TextureFormatInfo    formatInfo              = tcu::getTextureFormatInfo(format);
-                               const float                                             clampMin                = (float)(-MAX_INTEGER_VALUE);
-                               const float                                             clampMax                = (float)(MAX_INTEGER_VALUE);
-                               const Vec4                                              valueMax                (de::clamp(formatInfo.valueMax[0], clampMin, clampMax),
-                                                                                                                                de::clamp(formatInfo.valueMax[1], clampMin, clampMax),
-                                                                                                                                de::clamp(formatInfo.valueMax[2], clampMin, clampMax),
-                                                                                                                                de::clamp(formatInfo.valueMax[3], clampMin, clampMax));
-
-                               const Vec4                                              valueMin                (de::clamp(formatInfo.valueMin[0], clampMin, clampMax),
-                                                                                                                                de::clamp(formatInfo.valueMin[1], clampMin, clampMax),
-                                                                                                                                de::clamp(formatInfo.valueMin[2], clampMin, clampMax),
-                                                                                                                                de::clamp(formatInfo.valueMin[3], clampMin, clampMax));
-                               const std::string                               attachmentType  = getAttachmentType(config.renderPass.getAttachments()[subpass.getColorAttachments()[attachmentNdx].getAttachment()].getFormat());
-
-                               fragmentShader << "\to_color" << attachmentNdx << " = " << attachmentType << "(vec4" << valueMin << " + vec4" << (valueMax - valueMin)  << " * scale);\n";
+                               size_t  inputComponentCount             = 0;
+                               size_t  outputComponentCount    = 0;
+
+                               for (size_t attachmentNdx = 0; attachmentNdx < subpass.getInputAttachments().size(); attachmentNdx++)
+                               {
+                                       const deUint32                          attachmentIndex = subpass.getInputAttachments()[attachmentNdx].getAttachment();
+                                       const Attachment                        attachment              = config.renderPass.getAttachments()[attachmentIndex];
+                                       const tcu::TextureFormat        format                  = mapVkFormat(attachment.getFormat());
+                                       const size_t                            componentCount  = (size_t)tcu::getNumUsedChannels(format.order);
+
+                                       inputComponentCount += componentCount;
+                               }
+
+                               for (size_t attachmentNdx = 0; attachmentNdx < subpass.getColorAttachments().size(); attachmentNdx++)
+                               {
+                                       const deUint32                          attachmentIndex = subpass.getColorAttachments()[attachmentNdx].getAttachment();
+                                       const Attachment                        attachment              = config.renderPass.getAttachments()[attachmentIndex];
+                                       const tcu::TextureFormat        format                  = mapVkFormat(attachment.getFormat());
+                                       const size_t                            componentCount  = (size_t)tcu::getNumUsedChannels(format.order);
+
+                                       outputComponentCount += componentCount;
+                               }
+
+                               if (subpass.getDepthStencilAttachment().getAttachment() != VK_ATTACHMENT_UNUSED)
+                                       outputComponentCount++;
+
+                               const size_t inputsPerOutput = inputComponentCount >= outputComponentCount
+                                                                                               ? ((inputComponentCount / outputComponentCount)
+                                                                                                       + ((inputComponentCount % outputComponentCount) != 0 ? 1 : 0))
+                                                                                               : 1;
+
+                               fragmentShader << "\tbool inputs[" << inputComponentCount << "];\n"
+                                                                 "\tbool outputs[" << outputComponentCount << "];\n";
+
+                               size_t inputValueNdx = 0;
+
+                               for (size_t attachmentNdx = 0; attachmentNdx < subpass.getInputAttachments().size(); attachmentNdx++)
+                               {
+                                       const char* const       components[]    =
+                                       {
+                                               "x", "y", "z", "w"
+                                       };
+                                       const deUint32                          attachmentIndex = subpass.getInputAttachments()[attachmentNdx].getAttachment();
+                                       const Attachment                        attachment              = config.renderPass.getAttachments()[attachmentIndex];
+                                       const tcu::TextureFormat        format                  = mapVkFormat(attachment.getFormat());
+                                       const size_t                            componentCount  = (size_t)tcu::getNumUsedChannels(format.order);
+                                       const bool                                      isDepthFormat   = tcu::hasDepthComponent(format.order);
+                                       const bool                                      isStencilFormat = tcu::hasStencilComponent(format.order);
+
+                                       if (isDepthFormat || isStencilFormat)
+                                       {
+                                               if (isDepthFormat)
+                                               {
+                                                       fragmentShader << "\tinputs[" << inputValueNdx << "] = 1.0 == float(subpassLoad(i_depth" << attachmentNdx << ").x);\n";
+                                                       inputValueNdx++;
+                                               }
+
+                                               if (isStencilFormat)
+                                               {
+                                                       fragmentShader << "\tinputs[" << inputValueNdx << "] = 255u == subpassLoad(i_stencil" << attachmentNdx << ").x;\n";
+                                                       inputValueNdx++;
+                                               }
+                                       }
+                                       else
+                                       {
+                                               for (size_t compNdx = 0; compNdx < componentCount; compNdx++)
+                                               {
+                                                       fragmentShader << "\tinputs[" << inputValueNdx << "] = 1.0 == float(subpassLoad(i_color" << attachmentNdx << ")." << components[compNdx] << ");\n";
+                                                       inputValueNdx++;
+                                               }
+                                       }
+                               }
+
+                               size_t outputValueNdx = 0;
+
+                               for (size_t attachmentNdx = 0; attachmentNdx < subpass.getColorAttachments().size(); attachmentNdx++)
+                               {
+                                       const deUint32                          attachmentIndex = subpass.getColorAttachments()[attachmentNdx].getAttachment();
+                                       const Attachment                        attachment              = config.renderPass.getAttachments()[attachmentIndex];
+                                       const std::string                       attachmentType  = getAttachmentType(config.renderPass.getAttachments()[attachmentIndex].getFormat());
+                                       const tcu::TextureFormat        format                  = mapVkFormat(attachment.getFormat());
+                                       const size_t                            componentCount  = (size_t)tcu::getNumUsedChannels(format.order);
+
+                                       for (size_t compNdx = 0; compNdx < componentCount; compNdx++)
+                                       {
+                                               const size_t    index   = subpassNdx + attachmentIndex + outputValueNdx;
+                                               const BoolOp    op              = boolOpFromIndex(index);
+
+                                               fragmentShader << "\toutputs[" << outputValueNdx + compNdx << "] = "
+                                                                               << "(int(gl_FragCoord.x) % 2 == " << (index % 2)
+                                                                               << ") " << boolOpToString(op) << " ("
+                                                                               << "int(gl_FragCoord.y) % 2 == " << ((index / 2) % 2)
+                                                                               << ");\n";
+
+                                               for (size_t i = 0; i < inputsPerOutput; i++)
+                                                       fragmentShader << "\toutputs[" << outputValueNdx + compNdx << "] = outputs[" << outputValueNdx + compNdx << "] == inputs[" <<  ((outputValueNdx + compNdx) * inputsPerOutput + i) %  inputComponentCount << "];\n";
+                                       }
+
+                                       fragmentShader << "\to_color" << attachmentNdx << " = " << attachmentType << "(";
+
+                                       for (size_t compNdx = 0; compNdx < 4; compNdx++)
+                                       {
+                                               if (compNdx > 0)
+                                                       fragmentShader << ", ";
+
+                                               if (compNdx < componentCount)
+                                                       fragmentShader << "outputs[" << outputValueNdx + compNdx << "]";
+                                               else
+                                                       fragmentShader << "0";
+                                       }
+
+                                       outputValueNdx += componentCount;
+
+                                       fragmentShader << ");\n";
+                               }
+
+                               if (subpass.getDepthStencilAttachment().getAttachment() != VK_ATTACHMENT_UNUSED)
+                               {
+                                       const deUint32  attachmentIndex = subpass.getDepthStencilAttachment().getAttachment();
+                                       const size_t    index                   = subpassNdx + attachmentIndex;
+                                       const BoolOp    op                              = boolOpFromIndex(index);
+
+                                       fragmentShader << "\toutputs[" << outputValueNdx << "] = "
+                                                                       << "(int(gl_FragCoord.x) % 2 == " << (index % 2)
+                                                                       << ") " << boolOpToString(op) << " ("
+                                                                       << "int(gl_FragCoord.y) % 2 == " << ((index / 2) % 2)
+                                                                       << ");\n";
+
+                                       for (size_t i = 0; i < inputsPerOutput; i++)
+                                               fragmentShader << "\toutputs[" << outputValueNdx << "] = outputs[" << outputValueNdx << "] == inputs[" <<  (outputValueNdx * inputsPerOutput + i) %  inputComponentCount << "];\n";
+
+                                       fragmentShader << "\tgl_FragDepth = outputs[" << outputValueNdx << "] ? 1.0 : 0.0;";
+                               }
                        }
 
                        fragmentShader << "}\n";
@@ -3460,24 +3839,30 @@ enum AttachmentRefType
        ATTACHMENTREFTYPE_RESOLVE,
 };
 
-VkImageUsageFlags getImageUsageFromLayout(VkImageLayout layout)
+VkImageUsageFlags getImageUsageFromLayout (VkImageLayout layout)
 {
        switch (layout)
        {
                case VK_IMAGE_LAYOUT_GENERAL:
                case VK_IMAGE_LAYOUT_PREINITIALIZED:
                        return 0;
+
                case VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL:
                        return VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
+
                case VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL:
                case VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL:
                        return VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT;
+
                case VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL:
                        return VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT;
+
                case VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL:
                        return VK_IMAGE_USAGE_TRANSFER_SRC_BIT;
+
                case VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL:
                        return VK_IMAGE_USAGE_TRANSFER_DST_BIT;
+
                default:
                        DE_FATAL("Unexpected image layout");
                        return 0;
@@ -3500,12 +3885,15 @@ void getImageUsageFromAttachmentReferences(vector<VkImageUsageFlags>& attachment
                                case ATTACHMENTREFTYPE_RESOLVE:
                                        usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
                                        break;
+
                                case ATTACHMENTREFTYPE_DEPTH_STENCIL:
                                        usage = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT;
                                        break;
+
                                case ATTACHMENTREFTYPE_INPUT:
                                        usage = VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT;
                                        break;
+
                                default:
                                        DE_FATAL("Unexpected attachment reference type");
                                        usage = 0;
@@ -3542,9 +3930,8 @@ void initializeAttachmentImageUsage (Context &context, vector<VkImageUsageFlags>
        for (size_t attachmentNdx = 0; attachmentNdx < renderPassInfo.getAttachments().size(); attachmentNdx++)
        {
                const Attachment& attachment = renderPassInfo.getAttachments()[attachmentNdx];
-
-               const VkFormatProperties                formatProperties = getPhysicalDeviceFormatProperties(context.getInstanceInterface(), context.getPhysicalDevice(), attachment.getFormat());
-               const VkFormatFeatureFlags              supportedFeatures = formatProperties.optimalTilingFeatures;
+               const VkFormatProperties        formatProperties        = getPhysicalDeviceFormatProperties(context.getInstanceInterface(), context.getPhysicalDevice(), attachment.getFormat());
+               const VkFormatFeatureFlags      supportedFeatures       = formatProperties.optimalTilingFeatures;
 
                if ((supportedFeatures & VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT) != 0)
                        attachmentImageUsage[attachmentNdx] |= VK_IMAGE_USAGE_SAMPLED_BIT;
@@ -3667,16 +4054,16 @@ void logSubpassRenderInfo (TestLog&                                     log,
        {
                const RenderQuad&       renderQuad      = *info.getRenderQuad();
 
-               log << TestLog::Message << "Rendering gradient quad to " << renderQuad.getCornerA() << " -> " << renderQuad.getCornerB() << TestLog::EndMessage;
+               log << TestLog::Message << "Rendering grid quad to " << renderQuad.getCornerA() << " -> " << renderQuad.getCornerB() << TestLog::EndMessage;
        }
 }
 
-void logTestCaseInfo (TestLog&                                                                 log,
-                                         const TestConfig&                                                     config,
-                                         const vector<bool>&                                           attachmentIsLazy,
-                                         const vector<Maybe<VkClearValue> >&           imageClearValues,
-                                         const vector<Maybe<VkClearValue> >&           renderPassClearValues,
-                                         const vector<SubpassRenderInfo>&                      subpassRenderInfo)
+void logTestCaseInfo (TestLog&                                                         log,
+                                         const TestConfig&                                             config,
+                                         const vector<bool>&                                   attachmentIsLazy,
+                                         const vector<Maybe<VkClearValue> >&   imageClearValues,
+                                         const vector<Maybe<VkClearValue> >&   renderPassClearValues,
+                                         const vector<SubpassRenderInfo>&              subpassRenderInfo)
 {
        const RenderPass&       renderPass      = config.renderPass;
 
@@ -3711,6 +4098,15 @@ void logTestCaseInfo (TestLog&                                                                   log,
        }
 }
 
+float roundToViewport (float x, deUint32 offset, deUint32 size)
+{
+       const float             origin  = (float)(offset) + ((float(size) / 2.0f));
+       const float             p               = (float)(size) / 2.0f;
+       const deInt32   xi              = deRoundFloatToInt32(origin + (p * x));
+
+       return (((float)xi) - origin) / p;
+}
+
 void initializeSubpassRenderInfo (vector<SubpassRenderInfo>& renderInfos, de::Random& rng, const RenderPass& renderPass, const TestConfig& config)
 {
        const TestConfig::CommandBufferTypes    commandBuffer                   = config.commandBufferTypes;
@@ -3750,11 +4146,11 @@ void initializeSubpassRenderInfo (vector<SubpassRenderInfo>& renderInfos, de::Ra
 
                        if (subpass.getDepthStencilAttachment().getAttachment() != VK_ATTACHMENT_UNUSED)
                        {
-                               const Attachment&       attachment              = renderPass.getAttachments()[subpass.getDepthStencilAttachment().getAttachment()];
-                               const UVec2                     size                    ((viewportSize * UVec2(2)) / UVec2(3));
-                               const UVec2                     offset                  (viewportOffset.x() + ((deUint32)colorAttachments.size() % 2u) * (viewportSize.x() / 3u),
-                                                                                                        viewportOffset.y() + (((deUint32)colorAttachments.size() / 2u) % 2u) * (viewportSize.y() / 3u));
-                               const VkClearValue      value                   = randomClearValue(attachment, rng);
+                               const Attachment&       attachment      = renderPass.getAttachments()[subpass.getDepthStencilAttachment().getAttachment()];
+                               const UVec2                     size            ((viewportSize * UVec2(2)) / UVec2(3));
+                               const UVec2                     offset          (viewportOffset.x() + ((deUint32)colorAttachments.size() % 2u) * (viewportSize.x() / 3u),
+                                                                                                viewportOffset.y() + (((deUint32)colorAttachments.size() / 2u) % 2u) * (viewportSize.y() / 3u));
+                               const VkClearValue      value           = randomClearValue(attachment, rng);
 
                                depthStencilClear = tcu::just(DepthStencilClear(offset, size, value.depthStencil.depth, value.depthStencil.stencil));
                        }
@@ -3762,10 +4158,16 @@ void initializeSubpassRenderInfo (vector<SubpassRenderInfo>& renderInfos, de::Ra
 
                if (config.renderTypes & TestConfig::RENDERTYPES_DRAW)
                {
-                       // (-0.5,-0.5) - (0.5,0.5) rounded to pixel edges
-                       const float x = (float)(viewportSize.x() / 4) / (float)(viewportSize.x() / 2);
-                       const float y = (float)(viewportSize.y() / 4) / (float)(viewportSize.y() / 2);
-                       renderQuad = tcu::just(RenderQuad(tcu::Vec4(-x, -y, 0.0f, 1.0f), tcu::Vec4(x, y, 1.0f, 1.0f)));
+                       const float     w       = (subpassNdx % 2) == 0 ? 1.0f : 1.25f;
+                       const float     h       = (subpassNdx % 2) == 0 ? 1.25f : 1.0f;
+
+                       const float     x0      = roundToViewport((subpassNdx % 2) == 0 ? 1.0f - w : -1.0f, viewportOffset.x(), viewportSize.x());
+                       const float     x1      = roundToViewport((subpassNdx % 2) == 0 ? 1.0f : -1.0f + w, viewportOffset.x(), viewportSize.x());
+
+                       const float     y0      = roundToViewport(((subpassNdx / 2) % 2) == 0 ? 1.0f - h : -1.0f, viewportOffset.y(), viewportSize.y());
+                       const float     y1      = roundToViewport(((subpassNdx / 2) % 2) == 0 ? 1.0f : -1.0f + h, viewportOffset.y(), viewportSize.y());
+
+                       renderQuad = tcu::just(RenderQuad(tcu::Vec2(x0, y0), tcu::Vec2(x1, y1)));
                }
 
                renderInfos.push_back(SubpassRenderInfo(renderPass, subpassNdx, subpassIsSecondary, viewportOffset, viewportSize, renderQuad, colorClears, depthStencilClear));
@@ -3859,7 +4261,9 @@ tcu::TestStatus renderPassTest (Context& context, TestConfig config)
 
                vector<de::SharedPtr<AttachmentResources> >     attachmentResources;
                vector<de::SharedPtr<SubpassRenderer> >         subpassRenderers;
+               vector<VkImage>                                                         attachmentImages;
                vector<VkImageView>                                                     attachmentViews;
+               vector<pair<VkImageView, VkImageView> >         inputAttachmentViews;
 
                for (size_t attachmentNdx = 0; attachmentNdx < renderPassInfo.getAttachments().size(); attachmentNdx++)
                {
@@ -3867,6 +4271,9 @@ tcu::TestStatus renderPassTest (Context& context, TestConfig config)
 
                        attachmentResources.push_back(de::SharedPtr<AttachmentResources>(new AttachmentResources(vk, device, allocator, queueIndex, targetSize, attachmentInfo, attachmentImageUsage[attachmentNdx])));
                        attachmentViews.push_back(attachmentResources[attachmentNdx]->getAttachmentView());
+                       attachmentImages.push_back(attachmentResources[attachmentNdx]->getImage());
+
+                       inputAttachmentViews.push_back(attachmentResources[attachmentNdx]->getInputAttachmentViews());
                }
 
                beginCommandBuffer(vk, *initializeImagesCommandBuffer, (VkCommandBufferUsageFlags)0, DE_NULL, 0, DE_NULL, VK_FALSE, (VkQueryControlFlags)0, (VkQueryPipelineStatisticFlags)0);
@@ -3877,7 +4284,7 @@ tcu::TestStatus renderPassTest (Context& context, TestConfig config)
                        const Unique<VkFramebuffer> framebuffer (createFramebuffer(vk, device, *renderPass, targetSize, attachmentViews));
 
                        for (size_t subpassNdx = 0; subpassNdx < renderPassInfo.getSubpasses().size(); subpassNdx++)
-                               subpassRenderers.push_back(de::SharedPtr<SubpassRenderer>(new SubpassRenderer(context, vk, device, allocator, *renderPass, *framebuffer, *commandBufferPool, queueIndex, subpassRenderInfo[subpassNdx])));
+                               subpassRenderers.push_back(de::SharedPtr<SubpassRenderer>(new SubpassRenderer(context, vk, device, allocator, *renderPass, *framebuffer, *commandBufferPool, queueIndex, attachmentImages, inputAttachmentViews, subpassRenderInfo[subpassNdx], config.renderPass.getAttachments())));
 
                        beginCommandBuffer(vk, *renderCommandBuffer, (VkCommandBufferUsageFlags)0, DE_NULL, 0, DE_NULL, VK_FALSE, (VkQueryControlFlags)0, (VkQueryPipelineStatisticFlags)0);
                        pushRenderPassCommands(vk, *renderCommandBuffer, *renderPass, *framebuffer, subpassRenderers, renderPos, renderSize, renderPassClearValues, config.renderTypes);
@@ -3970,7 +4377,7 @@ static const VkFormat s_coreDepthStencilFormats[] =
        VK_FORMAT_D32_SFLOAT_S8_UINT
 };
 
-de::MovePtr<tcu::TestCaseGroup> createAttachmentTestCaseGroup (tcu::TestContext& testCtx)
+void addAttachmentTests (tcu::TestCaseGroup* group)
 {
        const deUint32 attachmentCounts[] = { 1, 3, 4, 8 };
        const VkAttachmentLoadOp loadOps[] =
@@ -4057,8 +4464,8 @@ de::MovePtr<tcu::TestCaseGroup> createAttachmentTestCaseGroup (tcu::TestContext&
                UVec2(60, 47)
        };
 
-       de::Random rng (1433774382u);
-       de::MovePtr<tcu::TestCaseGroup> group (new tcu::TestCaseGroup(testCtx, "attachment", "Attachment format and count tests with load and store ops and image layouts"));
+       tcu::TestContext&       testCtx = group->getTestContext();
+       de::Random                      rng             (1433774382u);
 
        for (size_t attachmentCountNdx = 0; attachmentCountNdx < DE_LENGTH_OF_ARRAY(attachmentCounts); attachmentCountNdx++)
        {
@@ -4093,16 +4500,16 @@ de::MovePtr<tcu::TestCaseGroup> createAttachmentTestCaseGroup (tcu::TestContext&
 
                        if (useDepthStencil)
                        {
-                               const VkSampleCountFlagBits     sampleCount                     = VK_SAMPLE_COUNT_1_BIT;
-                               const VkFormat                          format                          = rng.choose<VkFormat>(DE_ARRAY_BEGIN(s_coreDepthStencilFormats), DE_ARRAY_END(s_coreDepthStencilFormats));
-                               const VkAttachmentLoadOp        loadOp                          = rng.choose<VkAttachmentLoadOp>(DE_ARRAY_BEGIN(loadOps), DE_ARRAY_END(loadOps));
-                               const VkAttachmentStoreOp       storeOp                         = rng.choose<VkAttachmentStoreOp>(DE_ARRAY_BEGIN(storeOps), DE_ARRAY_END(storeOps));
+                               const VkSampleCountFlagBits     sampleCount             = VK_SAMPLE_COUNT_1_BIT;
+                               const VkFormat                          format                  = rng.choose<VkFormat>(DE_ARRAY_BEGIN(s_coreDepthStencilFormats), DE_ARRAY_END(s_coreDepthStencilFormats));
+                               const VkAttachmentLoadOp        loadOp                  = rng.choose<VkAttachmentLoadOp>(DE_ARRAY_BEGIN(loadOps), DE_ARRAY_END(loadOps));
+                               const VkAttachmentStoreOp       storeOp                 = rng.choose<VkAttachmentStoreOp>(DE_ARRAY_BEGIN(storeOps), DE_ARRAY_END(storeOps));
 
-                               const VkImageLayout                     initialLayout           = rng.choose<VkImageLayout>(DE_ARRAY_BEGIN(initialAndFinalDepthStencilLayouts), DE_ARRAY_END(initialAndFinalDepthStencilLayouts));
-                               const VkImageLayout                     finalizeLayout          = rng.choose<VkImageLayout>(DE_ARRAY_BEGIN(initialAndFinalDepthStencilLayouts), DE_ARRAY_END(initialAndFinalDepthStencilLayouts));
+                               const VkImageLayout                     initialLayout   = rng.choose<VkImageLayout>(DE_ARRAY_BEGIN(initialAndFinalDepthStencilLayouts), DE_ARRAY_END(initialAndFinalDepthStencilLayouts));
+                               const VkImageLayout                     finalizeLayout  = rng.choose<VkImageLayout>(DE_ARRAY_BEGIN(initialAndFinalDepthStencilLayouts), DE_ARRAY_END(initialAndFinalDepthStencilLayouts));
 
-                               const VkAttachmentLoadOp        stencilLoadOp           = rng.choose<VkAttachmentLoadOp>(DE_ARRAY_BEGIN(loadOps), DE_ARRAY_END(loadOps));
-                               const VkAttachmentStoreOp       stencilStoreOp          = rng.choose<VkAttachmentStoreOp>(DE_ARRAY_BEGIN(storeOps), DE_ARRAY_END(storeOps));
+                               const VkAttachmentLoadOp        stencilLoadOp   = rng.choose<VkAttachmentLoadOp>(DE_ARRAY_BEGIN(loadOps), DE_ARRAY_END(loadOps));
+                               const VkAttachmentStoreOp       stencilStoreOp  = rng.choose<VkAttachmentStoreOp>(DE_ARRAY_BEGIN(storeOps), DE_ARRAY_END(storeOps));
 
                                depthStencilLayout = rng.choose<VkImageLayout>(DE_ARRAY_BEGIN(depthStencilLayouts), DE_ARRAY_END(depthStencilLayouts));
                                attachments.push_back(Attachment(format, sampleCount, loadOp, storeOp, stencilLoadOp, stencilStoreOp, initialLayout, finalizeLayout));
@@ -4112,7 +4519,7 @@ de::MovePtr<tcu::TestCaseGroup> createAttachmentTestCaseGroup (tcu::TestContext&
                                const TestConfig::RenderTypes                   render                  = rng.choose<TestConfig::RenderTypes>(DE_ARRAY_BEGIN(renderCommands), DE_ARRAY_END(renderCommands));
                                const TestConfig::CommandBufferTypes    commandBuffer   = rng.choose<TestConfig::CommandBufferTypes>(DE_ARRAY_BEGIN(commandBuffers), DE_ARRAY_END(commandBuffers));
                                const TestConfig::ImageMemory                   imageMemory             = rng.choose<TestConfig::ImageMemory>(DE_ARRAY_BEGIN(imageMemories), DE_ARRAY_END(imageMemories));
-                               const vector<Subpass>                                   subpasses               (1, Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS, 0u, vector<AttachmentReference>(), colorAttachmentReferences, vector<AttachmentReference>(), AttachmentReference((useDepthStencil ? (deUint32)(attachments.size() - 1) : VK_ATTACHMENT_UNUSED), depthStencilLayout), vector<AttachmentReference>()));
+                               const vector<Subpass>                                   subpasses               (1, Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS, 0u, vector<AttachmentReference>(), colorAttachmentReferences, vector<AttachmentReference>(), AttachmentReference((useDepthStencil ? (deUint32)(attachments.size() - 1) : VK_ATTACHMENT_UNUSED), depthStencilLayout), vector<deUint32>()));
                                const vector<SubpassDependency>                 deps;
 
                                const string                                                    testCaseName    = de::toString(attachmentCountNdx * testCaseCount + testCaseNdx);
@@ -4127,11 +4534,21 @@ de::MovePtr<tcu::TestCaseGroup> createAttachmentTestCaseGroup (tcu::TestContext&
 
                group->addChild(attachmentCountGroup.release());
        }
+}
+
+template<typename T>
+T chooseRandom (de::Random& rng, const set<T>& values)
+{
+       size_t                                                  ndx             = ((size_t)rng.getUint32()) % values.size();
+       typename set<T>::const_iterator iter    = values.begin();
+
+       for (; ndx > 0; ndx--)
+               iter++;
 
-       return group;
+       return *iter;
 }
 
-de::MovePtr<tcu::TestCaseGroup> createAttachmentAllocationTestGroup (tcu::TestContext& testCtx)
+void addAttachmentAllocationTests (tcu::TestCaseGroup* group)
 {
        const deUint32 attachmentCounts[] = { 4, 8 };
        const VkAttachmentLoadOp loadOps[] =
@@ -4156,6 +4573,16 @@ de::MovePtr<tcu::TestCaseGroup> createAttachmentAllocationTestGroup (tcu::TestCo
                VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
        };
 
+       const VkImageLayout initialAndFinalDepthStencilLayouts[] =
+       {
+               VK_IMAGE_LAYOUT_GENERAL,
+               VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
+               VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,
+               VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
+               VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
+               VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
+       };
+
        const VkImageLayout subpassLayouts[] =
        {
                VK_IMAGE_LAYOUT_GENERAL,
@@ -4171,7 +4598,11 @@ de::MovePtr<tcu::TestCaseGroup> createAttachmentAllocationTestGroup (tcu::TestCo
                // Each pass drops one attachment and picks up new one
                ALLOCATIONTYPE_ROLL,
                // Start by growing and end by shrinking
-               ALLOCATIONTYPE_GROW_SHRINK
+               ALLOCATIONTYPE_GROW_SHRINK,
+               // Each subpass has single input and single output attachment
+               ALLOCATIONTYPE_IO_CHAIN,
+               // Each subpass has multiple inputs and multiple outputs attachment
+               ALLOCATIONTYPE_IO_GENERIC
        };
 
        const AllocationType allocationTypes[] =
@@ -4179,7 +4610,9 @@ de::MovePtr<tcu::TestCaseGroup> createAttachmentAllocationTestGroup (tcu::TestCo
                ALLOCATIONTYPE_GROW,
                ALLOCATIONTYPE_SHRINK,
                ALLOCATIONTYPE_ROLL,
-               ALLOCATIONTYPE_GROW_SHRINK
+               ALLOCATIONTYPE_GROW_SHRINK,
+               ALLOCATIONTYPE_IO_CHAIN,
+               ALLOCATIONTYPE_IO_GENERIC
        };
 
        const char* const allocationTypeStr[] =
@@ -4187,7 +4620,9 @@ de::MovePtr<tcu::TestCaseGroup> createAttachmentAllocationTestGroup (tcu::TestCo
                "grow",
                "shrink",
                "roll",
-               "grow_shrink"
+               "grow_shrink",
+               "input_output_chain",
+               "input_output",
        };
 
        const TestConfig::RenderTypes renderCommands[] =
@@ -4230,7 +4665,7 @@ de::MovePtr<tcu::TestCaseGroup> createAttachmentAllocationTestGroup (tcu::TestCo
                UVec2(60, 47)
        };
 
-       de::MovePtr<tcu::TestCaseGroup> group   (new tcu::TestCaseGroup(testCtx, "attachment_allocation", "Attachment allocation tests"));
+       tcu::TestContext&                               testCtx = group->getTestContext();
        de::Random                                              rng             (3700649827u);
 
        for (size_t allocationTypeNdx = 0; allocationTypeNdx < DE_LENGTH_OF_ARRAY(allocationTypes); allocationTypeNdx++)
@@ -4241,157 +4676,450 @@ de::MovePtr<tcu::TestCaseGroup> createAttachmentAllocationTestGroup (tcu::TestCo
 
                for (size_t testCaseNdx = 0; testCaseNdx < testCaseCount; testCaseNdx++)
                {
-                       const deUint32          attachmentCount = rng.choose<deUint32>(DE_ARRAY_BEGIN(attachmentCounts), DE_ARRAY_END(attachmentCounts));
-                       vector<Attachment>      attachments;
-                       vector<Subpass>         subpasses;
-
-                       for (size_t attachmentNdx = 0; attachmentNdx < attachmentCount; attachmentNdx++)
+                       if (allocationType == ALLOCATIONTYPE_IO_GENERIC)
                        {
-                               const VkSampleCountFlagBits     sampleCount             = VK_SAMPLE_COUNT_1_BIT;
-                               const VkFormat                          format                  = rng.choose<VkFormat>(DE_ARRAY_BEGIN(s_coreColorFormats), DE_ARRAY_END(s_coreColorFormats));
-                               const VkAttachmentLoadOp        loadOp                  = rng.choose<VkAttachmentLoadOp>(DE_ARRAY_BEGIN(loadOps), DE_ARRAY_END(loadOps));
-                               const VkAttachmentStoreOp       storeOp                 = rng.choose<VkAttachmentStoreOp>(DE_ARRAY_BEGIN(storeOps), DE_ARRAY_END(storeOps));
+                               const deUint32          attachmentCount = 4u + rng.getUint32() % 31u;
+                               const deUint32          subpassCount    = 4u + rng.getUint32() % 31u;
+                               vector<Attachment>      attachments;
 
-                               const VkImageLayout                     initialLayout   = rng.choose<VkImageLayout>(DE_ARRAY_BEGIN(initialAndFinalColorLayouts), DE_ARRAY_END(initialAndFinalColorLayouts));
-                               const VkImageLayout                     finalizeLayout  = rng.choose<VkImageLayout>(DE_ARRAY_BEGIN(initialAndFinalColorLayouts), DE_ARRAY_END(initialAndFinalColorLayouts));
-
-                               const VkAttachmentLoadOp        stencilLoadOp   = rng.choose<VkAttachmentLoadOp>(DE_ARRAY_BEGIN(loadOps), DE_ARRAY_END(loadOps));
-                               const VkAttachmentStoreOp       stencilStoreOp  = rng.choose<VkAttachmentStoreOp>(DE_ARRAY_BEGIN(storeOps), DE_ARRAY_END(storeOps));
+                               set<deUint32>           definedAttachments;
 
-                               attachments.push_back(Attachment(format, sampleCount, loadOp, storeOp, stencilLoadOp, stencilStoreOp, initialLayout, finalizeLayout));
-                       }
+                               vector<Subpass>         subpasses;
+                               set<deUint32>           colorAttachments;
+                               set<deUint32>           depthStencilAttachments;
 
-                       if (allocationType == ALLOCATIONTYPE_GROW)
-                       {
-                               for (size_t subpassNdx = 0; subpassNdx < attachmentCount; subpassNdx++)
+                               for (deUint32 attachmentIndex = 0; attachmentIndex < attachmentCount; attachmentIndex++)
                                {
-                                       vector<AttachmentReference>     colorAttachmentReferences;
-
-                                       for (size_t attachmentNdx = 0; attachmentNdx < subpassNdx + 1; attachmentNdx++)
+                                       const bool                                      isDepthStencilAttachment        = rng.getFloat() < 0.01f;
+                                       const VkSampleCountFlagBits     sampleCount                                     = VK_SAMPLE_COUNT_1_BIT;
+                                       const VkAttachmentLoadOp        loadOp                                          = rng.choose<VkAttachmentLoadOp>(DE_ARRAY_BEGIN(loadOps), DE_ARRAY_END(loadOps));
+                                       const VkAttachmentStoreOp       storeOp                                         = rng.choose<VkAttachmentStoreOp>(DE_ARRAY_BEGIN(storeOps), DE_ARRAY_END(storeOps));
+
+                                       const VkImageLayout                     initialLayout                           = isDepthStencilAttachment
+                                                                                                                                                       ? rng.choose<VkImageLayout>(DE_ARRAY_BEGIN(initialAndFinalDepthStencilLayouts), DE_ARRAY_END(initialAndFinalDepthStencilLayouts))
+                                                                                                                                                       : rng.choose<VkImageLayout>(DE_ARRAY_BEGIN(initialAndFinalColorLayouts), DE_ARRAY_END(initialAndFinalColorLayouts));
+                                       const VkImageLayout                     finalizeLayout                          = isDepthStencilAttachment
+                                                                                                                                                       ? rng.choose<VkImageLayout>(DE_ARRAY_BEGIN(initialAndFinalDepthStencilLayouts), DE_ARRAY_END(initialAndFinalDepthStencilLayouts))
+                                                                                                                                                       : rng.choose<VkImageLayout>(DE_ARRAY_BEGIN(initialAndFinalColorLayouts), DE_ARRAY_END(initialAndFinalColorLayouts));
+
+                                       const VkAttachmentLoadOp        stencilLoadOp                           = rng.choose<VkAttachmentLoadOp>(DE_ARRAY_BEGIN(loadOps), DE_ARRAY_END(loadOps));
+                                       const VkAttachmentStoreOp       stencilStoreOp                          = rng.choose<VkAttachmentStoreOp>(DE_ARRAY_BEGIN(storeOps), DE_ARRAY_END(storeOps));
+
+                                       if (isDepthStencilAttachment)
                                        {
-                                               const VkImageLayout subpassLayout = rng.choose<VkImageLayout>(DE_ARRAY_BEGIN(subpassLayouts), DE_ARRAY_END(subpassLayouts));
+                                               const VkFormat  format  = rng.choose<VkFormat>(DE_ARRAY_BEGIN(s_coreDepthStencilFormats), DE_ARRAY_END(s_coreDepthStencilFormats));
+
+                                               if (loadOp == VK_ATTACHMENT_LOAD_OP_LOAD || loadOp == VK_ATTACHMENT_LOAD_OP_CLEAR
+                                                       || stencilLoadOp == VK_ATTACHMENT_LOAD_OP_LOAD || stencilLoadOp == VK_ATTACHMENT_LOAD_OP_CLEAR)
+                                                       definedAttachments.insert(attachmentIndex);
 
-                                               colorAttachmentReferences.push_back(AttachmentReference((deUint32)attachmentNdx, subpassLayout));
+                                               depthStencilAttachments.insert(attachmentIndex);
+
+                                               attachments.push_back(Attachment(format, sampleCount, loadOp, storeOp, stencilLoadOp, stencilStoreOp, initialLayout, finalizeLayout));
                                        }
+                                       else
+                                       {
+                                               const VkFormat  format  = rng.choose<VkFormat>(DE_ARRAY_BEGIN(s_coreColorFormats), DE_ARRAY_END(s_coreColorFormats));
+
+                                               if (loadOp == VK_ATTACHMENT_LOAD_OP_LOAD || loadOp == VK_ATTACHMENT_LOAD_OP_CLEAR)
+                                                       definedAttachments.insert(attachmentIndex);
 
-                                       subpasses.push_back(Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS, 0u, vector<AttachmentReference>(), colorAttachmentReferences, vector<AttachmentReference>(), AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL), vector<AttachmentReference>()));
+                                               colorAttachments.insert(attachmentIndex);
+
+                                               attachments.push_back(Attachment(format, sampleCount, loadOp, storeOp, stencilLoadOp, stencilStoreOp, initialLayout, finalizeLayout));
+                                       }
                                }
-                       }
-                       else if (allocationType == ALLOCATIONTYPE_SHRINK)
-                       {
-                               for (size_t subpassNdx = 0; subpassNdx < attachmentCount; subpassNdx++)
+                               vector<Maybe<deUint32> >        lastUseOfAttachment     (attachments.size(), nothing<deUint32>());
+                               vector<SubpassDependency>       deps;
+
+                               for (deUint32 subpassIndex = 0; subpassIndex < subpassCount; subpassIndex++)
                                {
-                                       vector<AttachmentReference>     colorAttachmentReferences;
+                                       const deUint32                          colorAttachmentCount            = depthStencilAttachments.empty()
+                                                                                                                                                       ? 1 + rng.getUint32() % de::min(4u, (deUint32)colorAttachments.size())
+                                                                                                                                                       : rng.getUint32() % (de::min(4u, (deUint32)colorAttachments.size()) + 1u);
+                                       const deUint32                          inputAttachmentCount            = rng.getUint32() % (deUint32)(de::min<size_t>(4, definedAttachments.size()) + 1);
+                                       const bool                                      useDepthStencilAttachment       = !depthStencilAttachments.empty() && (colorAttachmentCount == 0 || rng.getBool());
+                                       std::vector<deUint32>           subpassColorAttachments         (colorAttachmentCount);
+                                       std::vector<deUint32>           subpassInputAttachments         (inputAttachmentCount);
+                                       Maybe<deUint32>                         depthStencilAttachment          (useDepthStencilAttachment
+                                                                                                                                                       ? just(chooseRandom(rng, depthStencilAttachments))
+                                                                                                                                                       : nothing<deUint32>());
+                                       std::vector<deUint32>           subpassPreserveAttachments;
+
+                                       rng.choose(colorAttachments.begin(), colorAttachments.end(), subpassColorAttachments.begin(), colorAttachmentCount);
+                                       rng.choose(definedAttachments.begin(), definedAttachments.end(), subpassInputAttachments.begin(), inputAttachmentCount);
+
+                                       for (size_t colorAttachmentNdx = 0; colorAttachmentNdx < subpassColorAttachments.size(); colorAttachmentNdx++)
+                                               definedAttachments.insert(subpassColorAttachments[colorAttachmentNdx]);
+
+                                       if (depthStencilAttachment)
+                                               definedAttachments.insert(*depthStencilAttachment);
 
-                                       for (size_t attachmentNdx = 0; attachmentNdx < (attachmentCount - subpassNdx); attachmentNdx++)
                                        {
-                                               const VkImageLayout subpassLayout = rng.choose<VkImageLayout>(DE_ARRAY_BEGIN(subpassLayouts), DE_ARRAY_END(subpassLayouts));
-
-                                               colorAttachmentReferences.push_back(AttachmentReference((deUint32)attachmentNdx, subpassLayout));
+                                               std::vector<AttachmentReference>        inputAttachmentReferences;
+                                               std::vector<AttachmentReference>        colorAttachmentReferences;
+                                               AttachmentReference                                     depthStencilAttachmentReference (VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL);
+
+                                               for (size_t colorAttachmentNdx = 0; colorAttachmentNdx < subpassColorAttachments.size(); colorAttachmentNdx++)
+                                               {
+                                                       const deUint32          colorAttachmentIndex    = subpassColorAttachments[colorAttachmentNdx];
+                                                       // \todo [mika 2016-08-25] Check if attachment is not used as input attachment and use other image layouts
+                                                       const VkImageLayout     subpassLayout                   = VK_IMAGE_LAYOUT_GENERAL;
+
+                                                       if (lastUseOfAttachment[colorAttachmentIndex])
+                                                       {
+                                                               const bool byRegion = rng.getBool();
+
+                                                               deps.push_back(SubpassDependency(*lastUseOfAttachment[colorAttachmentIndex], subpassIndex,
+                                                                                                                                VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT
+                                                                                                                                       | VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
+                                                                                                                                       | VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT
+                                                                                                                                       | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
+
+                                                                                                                                VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT
+                                                                                                                                       | VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
+                                                                                                                                       | VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT
+                                                                                                                                       | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
+
+                                                                                                                                VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
+                                                                                                                                VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,
+
+                                                                                                                                byRegion ? (VkDependencyFlags)VK_DEPENDENCY_BY_REGION_BIT : 0u));
+                                                       }
+
+                                                       lastUseOfAttachment[colorAttachmentIndex] = just(subpassIndex);
+
+                                                       colorAttachmentReferences.push_back(AttachmentReference((deUint32)subpassColorAttachments[colorAttachmentNdx], subpassLayout));
+                                               }
+
+                                               for (size_t inputAttachmentNdx = 0; inputAttachmentNdx < subpassInputAttachments.size(); inputAttachmentNdx++)
+                                               {
+                                                       const deUint32          inputAttachmentIndex    = subpassInputAttachments[inputAttachmentNdx];
+                                                       // \todo [mika 2016-08-25] Check if attachment is not used as color attachment and use other image layouts
+                                                       const VkImageLayout     subpassLayout                   = VK_IMAGE_LAYOUT_GENERAL;
+
+                                                       if(lastUseOfAttachment[inputAttachmentIndex])
+                                                       {
+                                                               if(*lastUseOfAttachment[inputAttachmentIndex] == subpassIndex)
+                                                               {
+                                                                       deps.push_back(SubpassDependency(subpassIndex, subpassIndex,
+                                                                                                                                        VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT
+                                                                                                                                               | VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
+                                                                                                                                               | VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT
+                                                                                                                                               | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
+
+                                                                                                                                        VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT
+                                                                                                                                               | VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
+                                                                                                                                               | VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT
+                                                                                                                                               | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
+
+                                                                                                                                        VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
+                                                                                                                                        VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
+
+                                                                                                                                        VK_DEPENDENCY_BY_REGION_BIT));
+                                                               }
+                                                               else
+                                                               {
+                                                                       const bool byRegion = rng.getBool();
+
+                                                                       deps.push_back(SubpassDependency(*lastUseOfAttachment[inputAttachmentIndex], subpassIndex,
+                                                                                                                                        VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT
+                                                                                                                                               | VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
+                                                                                                                                               | VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT
+                                                                                                                                               | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
+
+                                                                                                                                        VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT
+                                                                                                                                               | VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
+                                                                                                                                               | VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT
+                                                                                                                                               | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
+
+                                                                                                                                        VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
+                                                                                                                                        VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
+
+                                                                                                                                        byRegion ? (VkDependencyFlags)VK_DEPENDENCY_BY_REGION_BIT : 0u));
+                                                               }
+
+                                                               lastUseOfAttachment[inputAttachmentIndex] = just(subpassIndex);
+
+                                                               inputAttachmentReferences.push_back(AttachmentReference((deUint32)subpassInputAttachments[inputAttachmentNdx], subpassLayout));
+                                                       }
+                                               }
+
+                                               if (depthStencilAttachment)
+                                               {
+                                                       // \todo [mika 2016-08-25] Check if attachment is not used as input attachment and use other image layouts
+                                                       if (lastUseOfAttachment[*depthStencilAttachment])
+                                                       {
+                                                               if(*lastUseOfAttachment[*depthStencilAttachment] == subpassIndex)
+                                                               {
+                                                                       deps.push_back(SubpassDependency(subpassIndex, subpassIndex,
+                                                                                                                                        VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT
+                                                                                                                                               | VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
+                                                                                                                                               | VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT
+                                                                                                                                               | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
+
+                                                                                                                                        VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT
+                                                                                                                                               | VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
+                                                                                                                                               | VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT
+                                                                                                                                               | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
+
+                                                                                                                                        VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
+                                                                                                                                        VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
+
+                                                                                                                                        VK_DEPENDENCY_BY_REGION_BIT));
+                                                               }
+                                                               else
+                                                               {
+                                                                       const bool byRegion = rng.getBool();
+
+                                                                       deps.push_back(SubpassDependency(*lastUseOfAttachment[*depthStencilAttachment], subpassIndex,
+                                                                                                                                        VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT
+                                                                                                                                               | VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
+                                                                                                                                               | VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT
+                                                                                                                                               | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
+
+                                                                                                                                        VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT
+                                                                                                                                               | VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
+                                                                                                                                               | VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT
+                                                                                                                                               | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
+
+                                                                                                                                        VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
+                                                                                                                                        VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
+
+                                                                                                                                        byRegion ? (VkDependencyFlags)VK_DEPENDENCY_BY_REGION_BIT : 0u));
+                                                               }
+                                                       }
+
+                                                       lastUseOfAttachment[*depthStencilAttachment] = just(subpassIndex);
+                                                       depthStencilAttachmentReference = AttachmentReference(*depthStencilAttachment, VK_IMAGE_LAYOUT_GENERAL);
+                                               }
+                                               else
+                                                       depthStencilAttachmentReference = AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL);
+
+                                               vector<deUint32>        preserveAttachments;
+                                               for (deUint32 attachmentIndex = 0; attachmentIndex < (deUint32)attachments.size(); attachmentIndex++)
+                                               {
+                                                       if (lastUseOfAttachment[attachmentIndex] && (*lastUseOfAttachment[attachmentIndex]) != subpassIndex)
+                                                               preserveAttachments.push_back(attachmentIndex);
+                                               }
+
+                                               subpasses.push_back(Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS, 0u,
+                                                                                               inputAttachmentReferences,
+                                                                                               colorAttachmentReferences,
+                                                                                               vector<AttachmentReference>(),
+                                                                                               depthStencilAttachmentReference,
+                                                                                               preserveAttachments));
                                        }
-
-                                       subpasses.push_back(Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS, 0u, vector<AttachmentReference>(), colorAttachmentReferences, vector<AttachmentReference>(), AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL), vector<AttachmentReference>()));
                                }
-                       }
-                       else if (allocationType == ALLOCATIONTYPE_ROLL)
-                       {
-                               for (size_t subpassNdx = 0; subpassNdx < attachmentCount / 2; subpassNdx++)
                                {
-                                       vector<AttachmentReference>     colorAttachmentReferences;
+                                       const TestConfig::RenderTypes                   render                  = rng.choose<TestConfig::RenderTypes>(DE_ARRAY_BEGIN(renderCommands), DE_ARRAY_END(renderCommands));
+                                       const TestConfig::CommandBufferTypes    commandBuffer   = rng.choose<TestConfig::CommandBufferTypes>(DE_ARRAY_BEGIN(commandBuffers), DE_ARRAY_END(commandBuffers));
+                                       const TestConfig::ImageMemory                   imageMemory             = rng.choose<TestConfig::ImageMemory>(DE_ARRAY_BEGIN(imageMemories), DE_ARRAY_END(imageMemories));
 
-                                       for (size_t attachmentNdx = 0; attachmentNdx < attachmentCount / 2; attachmentNdx++)
-                                       {
-                                               const VkImageLayout subpassLayout = rng.choose<VkImageLayout>(DE_ARRAY_BEGIN(subpassLayouts), DE_ARRAY_END(subpassLayouts));
+                                       const string                                                    testCaseName    = de::toString(testCaseNdx);
+                                       const UVec2                                                             targetSize              = rng.choose<UVec2>(DE_ARRAY_BEGIN(targetSizes), DE_ARRAY_END(targetSizes));
+                                       const UVec2                                                             renderPos               = rng.choose<UVec2>(DE_ARRAY_BEGIN(renderPositions), DE_ARRAY_END(renderPositions));
+                                       const UVec2                                                             renderSize              = rng.choose<UVec2>(DE_ARRAY_BEGIN(renderSizes), DE_ARRAY_END(renderSizes));
 
-                                               colorAttachmentReferences.push_back(AttachmentReference((deUint32)(subpassNdx + attachmentNdx), subpassLayout));
-                                       }
+                                       const RenderPass                                                renderPass              (attachments, subpasses, deps);
 
-                                       subpasses.push_back(Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS, 0u, vector<AttachmentReference>(), colorAttachmentReferences, vector<AttachmentReference>(), AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL), vector<AttachmentReference>()));
+                                       addFunctionCaseWithPrograms<TestConfig>(allocationTypeGroup.get(), testCaseName.c_str(), testCaseName.c_str(), createTestShaders, renderPassTest, TestConfig(renderPass, render, commandBuffer, imageMemory, targetSize, renderPos, renderSize, 80329));
                                }
                        }
-                       else if (allocationType == ALLOCATIONTYPE_GROW_SHRINK)
+                       else
                        {
-                               for (size_t subpassNdx = 0; subpassNdx < attachmentCount; subpassNdx++)
+                               const deUint32          attachmentCount = rng.choose<deUint32>(DE_ARRAY_BEGIN(attachmentCounts), DE_ARRAY_END(attachmentCounts));
+                               vector<Attachment>      attachments;
+                               vector<Subpass>         subpasses;
+
+                               for (size_t attachmentNdx = 0; attachmentNdx < attachmentCount; attachmentNdx++)
                                {
-                                       vector<AttachmentReference>     colorAttachmentReferences;
+                                       const VkSampleCountFlagBits     sampleCount             = VK_SAMPLE_COUNT_1_BIT;
+                                       const VkFormat                          format                  = rng.choose<VkFormat>(DE_ARRAY_BEGIN(s_coreColorFormats), DE_ARRAY_END(s_coreColorFormats));
+                                       const VkAttachmentLoadOp        loadOp                  = rng.choose<VkAttachmentLoadOp>(DE_ARRAY_BEGIN(loadOps), DE_ARRAY_END(loadOps));
+                                       const VkAttachmentStoreOp       storeOp                 = rng.choose<VkAttachmentStoreOp>(DE_ARRAY_BEGIN(storeOps), DE_ARRAY_END(storeOps));
 
-                                       for (size_t attachmentNdx = 0; attachmentNdx < subpassNdx + 1; attachmentNdx++)
-                                       {
-                                               const VkImageLayout subpassLayout = rng.choose<VkImageLayout>(DE_ARRAY_BEGIN(subpassLayouts), DE_ARRAY_END(subpassLayouts));
+                                       const VkImageLayout                     initialLayout   = rng.choose<VkImageLayout>(DE_ARRAY_BEGIN(initialAndFinalColorLayouts), DE_ARRAY_END(initialAndFinalColorLayouts));
+                                       const VkImageLayout                     finalizeLayout  = rng.choose<VkImageLayout>(DE_ARRAY_BEGIN(initialAndFinalColorLayouts), DE_ARRAY_END(initialAndFinalColorLayouts));
 
-                                               colorAttachmentReferences.push_back(AttachmentReference((deUint32)attachmentNdx, subpassLayout));
-                                       }
+                                       const VkAttachmentLoadOp        stencilLoadOp   = rng.choose<VkAttachmentLoadOp>(DE_ARRAY_BEGIN(loadOps), DE_ARRAY_END(loadOps));
+                                       const VkAttachmentStoreOp       stencilStoreOp  = rng.choose<VkAttachmentStoreOp>(DE_ARRAY_BEGIN(storeOps), DE_ARRAY_END(storeOps));
 
-                                       subpasses.push_back(Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS, 0u, vector<AttachmentReference>(), colorAttachmentReferences, vector<AttachmentReference>(), AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL), vector<AttachmentReference>()));
+                                       attachments.push_back(Attachment(format, sampleCount, loadOp, storeOp, stencilLoadOp, stencilStoreOp, initialLayout, finalizeLayout));
                                }
 
-                               for (size_t subpassNdx = 0; subpassNdx < attachmentCount; subpassNdx++)
+                               if (allocationType == ALLOCATIONTYPE_GROW)
                                {
-                                       vector<AttachmentReference>     colorAttachmentReferences;
+                                       for (size_t subpassNdx = 0; subpassNdx < attachmentCount; subpassNdx++)
+                                       {
+                                               vector<AttachmentReference>     colorAttachmentReferences;
+
+                                               for (size_t attachmentNdx = 0; attachmentNdx < subpassNdx + 1; attachmentNdx++)
+                                               {
+                                                       const VkImageLayout subpassLayout = rng.choose<VkImageLayout>(DE_ARRAY_BEGIN(subpassLayouts), DE_ARRAY_END(subpassLayouts));
+
+                                                       colorAttachmentReferences.push_back(AttachmentReference((deUint32)attachmentNdx, subpassLayout));
+                                               }
 
-                                       for (size_t attachmentNdx = 0; attachmentNdx < (attachmentCount - subpassNdx); attachmentNdx++)
+                                               subpasses.push_back(Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS, 0u,
+                                                                                               vector<AttachmentReference>(),
+                                                                                               colorAttachmentReferences,
+                                                                                               vector<AttachmentReference>(),
+                                                                                               AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL),
+                                                                                               vector<deUint32>()));
+                                       }
+                               }
+                               else if (allocationType == ALLOCATIONTYPE_SHRINK)
+                               {
+                                       for (size_t subpassNdx = 0; subpassNdx < attachmentCount; subpassNdx++)
                                        {
-                                               const VkImageLayout subpassLayout = rng.choose<VkImageLayout>(DE_ARRAY_BEGIN(subpassLayouts), DE_ARRAY_END(subpassLayouts));
+                                               vector<AttachmentReference>     colorAttachmentReferences;
+
+                                               for (size_t attachmentNdx = 0; attachmentNdx < (attachmentCount - subpassNdx); attachmentNdx++)
+                                               {
+                                                       const VkImageLayout subpassLayout = rng.choose<VkImageLayout>(DE_ARRAY_BEGIN(subpassLayouts), DE_ARRAY_END(subpassLayouts));
 
-                                               colorAttachmentReferences.push_back(AttachmentReference((deUint32)attachmentNdx, subpassLayout));
+                                                       colorAttachmentReferences.push_back(AttachmentReference((deUint32)attachmentNdx, subpassLayout));
+                                               }
+
+                                               subpasses.push_back(Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS, 0u,
+                                                                                                       vector<AttachmentReference>(),
+                                                                                                       colorAttachmentReferences,
+                                                                                                       vector<AttachmentReference>(),
+                                                                                                       AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL),
+                                                                                                       vector<deUint32>()));
                                        }
+                               }
+                               else if (allocationType == ALLOCATIONTYPE_ROLL)
+                               {
+                                       for (size_t subpassNdx = 0; subpassNdx < attachmentCount / 2; subpassNdx++)
+                                       {
+                                               vector<AttachmentReference>     colorAttachmentReferences;
 
-                                       subpasses.push_back(Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS, 0u, vector<AttachmentReference>(), colorAttachmentReferences, vector<AttachmentReference>(), AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL), vector<AttachmentReference>()));
+                                               for (size_t attachmentNdx = 0; attachmentNdx < attachmentCount / 2; attachmentNdx++)
+                                               {
+                                                       const VkImageLayout subpassLayout = rng.choose<VkImageLayout>(DE_ARRAY_BEGIN(subpassLayouts), DE_ARRAY_END(subpassLayouts));
+
+                                                       colorAttachmentReferences.push_back(AttachmentReference((deUint32)(subpassNdx + attachmentNdx), subpassLayout));
+                                               }
+
+                                               subpasses.push_back(Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS, 0u,
+                                                                                                       vector<AttachmentReference>(),
+                                                                                                       colorAttachmentReferences,
+                                                                                                       vector<AttachmentReference>(),
+                                                                                                       AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL),
+                                                                                                       vector<deUint32>()));
+                                       }
                                }
-                       }
-                       else
-                               DE_FATAL("Unknown allocation type");
+                               else if (allocationType == ALLOCATIONTYPE_GROW_SHRINK)
+                               {
+                                       for (size_t subpassNdx = 0; subpassNdx < attachmentCount; subpassNdx++)
+                                       {
+                                               vector<AttachmentReference>     colorAttachmentReferences;
 
-                       {
-                               const TestConfig::RenderTypes                   render                  = rng.choose<TestConfig::RenderTypes>(DE_ARRAY_BEGIN(renderCommands), DE_ARRAY_END(renderCommands));
-                               const TestConfig::CommandBufferTypes    commandBuffer   = rng.choose<TestConfig::CommandBufferTypes>(DE_ARRAY_BEGIN(commandBuffers), DE_ARRAY_END(commandBuffers));
-                               const TestConfig::ImageMemory                   imageMemory             = rng.choose<TestConfig::ImageMemory>(DE_ARRAY_BEGIN(imageMemories), DE_ARRAY_END(imageMemories));
+                                               for (size_t attachmentNdx = 0; attachmentNdx < subpassNdx + 1; attachmentNdx++)
+                                               {
+                                                       const VkImageLayout subpassLayout = rng.choose<VkImageLayout>(DE_ARRAY_BEGIN(subpassLayouts), DE_ARRAY_END(subpassLayouts));
 
-                               const string                                                    testCaseName    = de::toString(testCaseNdx);
-                               const UVec2                                                             targetSize              = rng.choose<UVec2>(DE_ARRAY_BEGIN(targetSizes), DE_ARRAY_END(targetSizes));
-                               const UVec2                                                             renderPos               = rng.choose<UVec2>(DE_ARRAY_BEGIN(renderPositions), DE_ARRAY_END(renderPositions));
-                               const UVec2                                                             renderSize              = rng.choose<UVec2>(DE_ARRAY_BEGIN(renderSizes), DE_ARRAY_END(renderSizes));
+                                                       colorAttachmentReferences.push_back(AttachmentReference((deUint32)attachmentNdx, subpassLayout));
+                                               }
+
+                                               subpasses.push_back(Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS, 0u,
+                                                                                                       vector<AttachmentReference>(),
+                                                                                                       colorAttachmentReferences,
+                                                                                                       vector<AttachmentReference>(),
+                                                                                                       AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL),
+                                                                                                       vector<deUint32>()));
+                                       }
 
-                               vector<SubpassDependency>                               deps;
+                                       for (size_t subpassNdx = 0; subpassNdx < attachmentCount; subpassNdx++)
+                                       {
+                                               vector<AttachmentReference>     colorAttachmentReferences;
+
+                                               for (size_t attachmentNdx = 0; attachmentNdx < (attachmentCount - subpassNdx); attachmentNdx++)
+                                               {
+                                                       const VkImageLayout subpassLayout = rng.choose<VkImageLayout>(DE_ARRAY_BEGIN(subpassLayouts), DE_ARRAY_END(subpassLayouts));
 
-                               for (size_t subpassNdx = 0; subpassNdx < subpasses.size() - 1; subpassNdx++)
+                                                       colorAttachmentReferences.push_back(AttachmentReference((deUint32)attachmentNdx, subpassLayout));
+                                               }
+
+                                               subpasses.push_back(Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS, 0u,
+                                                                                       vector<AttachmentReference>(),
+                                                                                       colorAttachmentReferences,
+                                                                                       vector<AttachmentReference>(),
+                                                                                       AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL),
+                                                                                       vector<deUint32>()));
+                                       }
+                               }
+                               else if (allocationType == ALLOCATIONTYPE_IO_CHAIN)
                                {
-                                       const bool byRegion                             = rng.getBool();
-                                       deps.push_back(SubpassDependency((deUint32)subpassNdx, (deUint32)subpassNdx + 1,
-                                                                                                        VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT
-                                                                                                               | VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
-                                                                                                               | VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT
-                                                                                                               | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
-
-                                                                                                        VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT
-                                                                                                               | VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
-                                                                                                               | VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT
-                                                                                                               | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
-
-                                                                                                        VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
-                                                                                                        VK_ACCESS_COLOR_ATTACHMENT_READ_BIT, // \todo [pyry] Correct?
-
-                                                                                                        byRegion ? (VkBool32)VK_TRUE : (VkBool32)VK_FALSE));
+                                       subpasses.push_back(Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS, 0u,
+                                                                                       vector<AttachmentReference>(),
+                                                                                       vector<AttachmentReference>(1, AttachmentReference(0, rng.choose<VkImageLayout>(DE_ARRAY_BEGIN(subpassLayouts), DE_ARRAY_END(subpassLayouts)))),
+                                                                                       vector<AttachmentReference>(),
+                                                                                       AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL),
+                                                                                       vector<deUint32>()));
+
+                                       for (size_t subpassNdx = 1; subpassNdx < attachmentCount; subpassNdx++)
+                                       {
+                                               subpasses.push_back(Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS, 0u,
+                                                                                               vector<AttachmentReference>(1, AttachmentReference((deUint32)(subpassNdx - 1), VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL)),
+                                                                                               vector<AttachmentReference>(1, AttachmentReference((deUint32)(subpassNdx), rng.choose<VkImageLayout>(DE_ARRAY_BEGIN(subpassLayouts), DE_ARRAY_END(subpassLayouts)))),
+                                                                                               vector<AttachmentReference>(),
+                                                                                               AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL),
+                                                                                               vector<deUint32>()));
+                                       }
                                }
+                               else
+                                       DE_FATAL("Unknown allocation type");
 
-                               const RenderPass                                        renderPass              (attachments, subpasses, deps);
+                               {
+                                       const TestConfig::RenderTypes                   render                  = rng.choose<TestConfig::RenderTypes>(DE_ARRAY_BEGIN(renderCommands), DE_ARRAY_END(renderCommands));
+                                       const TestConfig::CommandBufferTypes    commandBuffer   = rng.choose<TestConfig::CommandBufferTypes>(DE_ARRAY_BEGIN(commandBuffers), DE_ARRAY_END(commandBuffers));
+                                       const TestConfig::ImageMemory                   imageMemory             = rng.choose<TestConfig::ImageMemory>(DE_ARRAY_BEGIN(imageMemories), DE_ARRAY_END(imageMemories));
+
+                                       const string                                                    testCaseName    = de::toString(testCaseNdx);
+                                       const UVec2                                                             targetSize              = rng.choose<UVec2>(DE_ARRAY_BEGIN(targetSizes), DE_ARRAY_END(targetSizes));
+                                       const UVec2                                                             renderPos               = rng.choose<UVec2>(DE_ARRAY_BEGIN(renderPositions), DE_ARRAY_END(renderPositions));
+                                       const UVec2                                                             renderSize              = rng.choose<UVec2>(DE_ARRAY_BEGIN(renderSizes), DE_ARRAY_END(renderSizes));
+
+                                       vector<SubpassDependency>                               deps;
+
+                                       for (size_t subpassNdx = 0; subpassNdx < subpasses.size() - 1; subpassNdx++)
+                                       {
+                                               const bool byRegion                             = rng.getBool();
+                                               deps.push_back(SubpassDependency((deUint32)subpassNdx, (deUint32)subpassNdx + 1,
+                                                                                                                VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT
+                                                                                                                       | VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
+                                                                                                                       | VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT
+                                                                                                                       | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
+
+                                                                                                                VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT
+                                                                                                                       | VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
+                                                                                                                       | VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT
+                                                                                                                       | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
+
+                                                                                                                VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
+                                                                                                                VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,
+
+                                                                                                                byRegion ? (VkDependencyFlags)VK_DEPENDENCY_BY_REGION_BIT : 0u));
+                                       }
 
-                               addFunctionCaseWithPrograms<TestConfig>(allocationTypeGroup.get(), testCaseName.c_str(), testCaseName.c_str(), createTestShaders, renderPassTest, TestConfig(renderPass, render, commandBuffer, imageMemory, targetSize, renderPos, renderSize, 80329));
+                                       const RenderPass                                        renderPass              (attachments, subpasses, deps);
+
+                                       addFunctionCaseWithPrograms<TestConfig>(allocationTypeGroup.get(), testCaseName.c_str(), testCaseName.c_str(), createTestShaders, renderPassTest, TestConfig(renderPass, render, commandBuffer, imageMemory, targetSize, renderPos, renderSize, 80329));
+                               }
                        }
                }
-
                group->addChild(allocationTypeGroup.release());
        }
-
-       return group;
 }
 
-de::MovePtr<tcu::TestCaseGroup> createSimpleTestGroup (tcu::TestContext& testCtx)
+void addSimpleTests (tcu::TestCaseGroup* group)
 {
-       const UVec2                                             targetSize      (64, 64);
-       const UVec2                                             renderPos       (0, 0);
-       const UVec2                                             renderSize      (64, 64);
-       de::MovePtr<tcu::TestCaseGroup> group           (new tcu::TestCaseGroup(testCtx, "simple", "Simple basic render pass tests"));
+       const UVec2     targetSize      (64, 64);
+       const UVec2     renderPos       (0, 0);
+       const UVec2     renderSize      (64, 64);
 
        // color
        {
@@ -4409,10 +5137,10 @@ de::MovePtr<tcu::TestCaseGroup> createSimpleTestGroup (tcu::TestContext& testCtx
                                                                                                                                        vector<AttachmentReference>(1, AttachmentReference(0, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL)),
                                                                                                                                        vector<AttachmentReference>(),
                                                                                                                                        AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL),
-                                                                                                                                       vector<AttachmentReference>())),
+                                                                                                                                       vector<deUint32>())),
                                                                                 vector<SubpassDependency>());
 
-               addFunctionCaseWithPrograms<TestConfig>(group.get(), "color", "Single color attachment case.", createTestShaders, renderPassTest, TestConfig(renderPass, TestConfig::RENDERTYPES_DRAW, TestConfig::COMMANDBUFFERTYPES_INLINE, TestConfig::IMAGEMEMORY_STRICT, targetSize, renderPos, renderSize, 90239));
+               addFunctionCaseWithPrograms<TestConfig>(group, "color", "Single color attachment case.", createTestShaders, renderPassTest, TestConfig(renderPass, TestConfig::RENDERTYPES_DRAW, TestConfig::COMMANDBUFFERTYPES_INLINE, TestConfig::IMAGEMEMORY_STRICT, targetSize, renderPos, renderSize, 90239));
        }
 
        // depth
@@ -4431,10 +5159,10 @@ de::MovePtr<tcu::TestCaseGroup> createSimpleTestGroup (tcu::TestContext& testCtx
                                                                                                                                        vector<AttachmentReference>(),
                                                                                                                                        vector<AttachmentReference>(),
                                                                                                                                        AttachmentReference(0, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL),
-                                                                                                                                       vector<AttachmentReference>())),
+                                                                                                                                       vector<deUint32>())),
                                                                                 vector<SubpassDependency>());
 
-               addFunctionCaseWithPrograms<TestConfig>(group.get(), "depth", "Single depth attachment case.", createTestShaders, renderPassTest, TestConfig(renderPass, TestConfig::RENDERTYPES_DRAW, TestConfig::COMMANDBUFFERTYPES_INLINE, TestConfig::IMAGEMEMORY_STRICT, targetSize, renderPos, renderSize, 90239));
+               addFunctionCaseWithPrograms<TestConfig>(group, "depth", "Single depth attachment case.", createTestShaders, renderPassTest, TestConfig(renderPass, TestConfig::RENDERTYPES_DRAW, TestConfig::COMMANDBUFFERTYPES_INLINE, TestConfig::IMAGEMEMORY_STRICT, targetSize, renderPos, renderSize, 90239));
        }
 
        // stencil
@@ -4453,10 +5181,10 @@ de::MovePtr<tcu::TestCaseGroup> createSimpleTestGroup (tcu::TestContext& testCtx
                                                                                                                                        vector<AttachmentReference>(),
                                                                                                                                        vector<AttachmentReference>(),
                                                                                                                                        AttachmentReference(0, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL),
-                                                                                                                                       vector<AttachmentReference>())),
+                                                                                                                                       vector<deUint32>())),
                                                                                 vector<SubpassDependency>());
 
-               addFunctionCaseWithPrograms<TestConfig>(group.get(), "stencil", "Single stencil attachment case.", createTestShaders, renderPassTest, TestConfig(renderPass, TestConfig::RENDERTYPES_DRAW, TestConfig::COMMANDBUFFERTYPES_INLINE, TestConfig::IMAGEMEMORY_STRICT, targetSize, renderPos, renderSize, 90239));
+               addFunctionCaseWithPrograms<TestConfig>(group, "stencil", "Single stencil attachment case.", createTestShaders, renderPassTest, TestConfig(renderPass, TestConfig::RENDERTYPES_DRAW, TestConfig::COMMANDBUFFERTYPES_INLINE, TestConfig::IMAGEMEMORY_STRICT, targetSize, renderPos, renderSize, 90239));
        }
 
        // depth_stencil
@@ -4475,10 +5203,10 @@ de::MovePtr<tcu::TestCaseGroup> createSimpleTestGroup (tcu::TestContext& testCtx
                                                                                                                                        vector<AttachmentReference>(),
                                                                                                                                        vector<AttachmentReference>(),
                                                                                                                                        AttachmentReference(0, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL),
-                                                                                                                                       vector<AttachmentReference>())),
+                                                                                                                                       vector<deUint32>())),
                                                                                 vector<SubpassDependency>());
 
-               addFunctionCaseWithPrograms<TestConfig>(group.get(), "depth_stencil", "Single depth stencil attachment case.", createTestShaders, renderPassTest, TestConfig(renderPass, TestConfig::RENDERTYPES_DRAW, TestConfig::COMMANDBUFFERTYPES_INLINE, TestConfig::IMAGEMEMORY_STRICT, targetSize, renderPos, renderSize, 90239));
+               addFunctionCaseWithPrograms<TestConfig>(group, "depth_stencil", "Single depth stencil attachment case.", createTestShaders, renderPassTest, TestConfig(renderPass, TestConfig::RENDERTYPES_DRAW, TestConfig::COMMANDBUFFERTYPES_INLINE, TestConfig::IMAGEMEMORY_STRICT, targetSize, renderPos, renderSize, 90239));
        }
 
        // color_depth
@@ -4510,10 +5238,10 @@ de::MovePtr<tcu::TestCaseGroup> createSimpleTestGroup (tcu::TestContext& testCtx
                                                                                                                                        vector<AttachmentReference>(1, AttachmentReference(0, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL)),
                                                                                                                                        vector<AttachmentReference>(),
                                                                                                                                        AttachmentReference(1, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL),
-                                                                                                                                       vector<AttachmentReference>())),
+                                                                                                                                       vector<deUint32>())),
                                                                                 vector<SubpassDependency>());
 
-               addFunctionCaseWithPrograms<TestConfig>(group.get(), "color_depth", "Color and depth attachment case.", createTestShaders, renderPassTest, TestConfig(renderPass, TestConfig::RENDERTYPES_DRAW, TestConfig::COMMANDBUFFERTYPES_INLINE, TestConfig::IMAGEMEMORY_STRICT, targetSize, renderPos, renderSize, 90239));
+               addFunctionCaseWithPrograms<TestConfig>(group, "color_depth", "Color and depth attachment case.", createTestShaders, renderPassTest, TestConfig(renderPass, TestConfig::RENDERTYPES_DRAW, TestConfig::COMMANDBUFFERTYPES_INLINE, TestConfig::IMAGEMEMORY_STRICT, targetSize, renderPos, renderSize, 90239));
        }
 
        // color_stencil
@@ -4545,11 +5273,11 @@ de::MovePtr<tcu::TestCaseGroup> createSimpleTestGroup (tcu::TestContext& testCtx
                                                                                                                                        vector<AttachmentReference>(1, AttachmentReference(0, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL)),
                                                                                                                                        vector<AttachmentReference>(),
                                                                                                                                        AttachmentReference(1, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL),
-                                                                                                                                       vector<AttachmentReference>())),
+                                                                                                                                       vector<deUint32>())),
                                                                                 vector<SubpassDependency>());
 
 
-               addFunctionCaseWithPrograms<TestConfig>(group.get(), "color_stencil", "Color and stencil attachment case.", createTestShaders, renderPassTest, TestConfig(renderPass, TestConfig::RENDERTYPES_DRAW, TestConfig::COMMANDBUFFERTYPES_INLINE, TestConfig::IMAGEMEMORY_STRICT, targetSize, renderPos, renderSize, 90239));
+               addFunctionCaseWithPrograms<TestConfig>(group, "color_stencil", "Color and stencil attachment case.", createTestShaders, renderPassTest, TestConfig(renderPass, TestConfig::RENDERTYPES_DRAW, TestConfig::COMMANDBUFFERTYPES_INLINE, TestConfig::IMAGEMEMORY_STRICT, targetSize, renderPos, renderSize, 90239));
        }
 
        // color_depth_stencil
@@ -4581,13 +5309,11 @@ de::MovePtr<tcu::TestCaseGroup> createSimpleTestGroup (tcu::TestContext& testCtx
                                                                                                                                        vector<AttachmentReference>(1, AttachmentReference(0, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL)),
                                                                                                                                        vector<AttachmentReference>(),
                                                                                                                                        AttachmentReference(1, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL),
-                                                                                                                                       vector<AttachmentReference>())),
+                                                                                                                                       vector<deUint32>())),
                                                                                 vector<SubpassDependency>());
 
-               addFunctionCaseWithPrograms<TestConfig>(group.get(), "color_depth_stencil", "Color, depth and stencil attachment case.", createTestShaders, renderPassTest, TestConfig(renderPass, TestConfig::RENDERTYPES_DRAW, TestConfig::COMMANDBUFFERTYPES_INLINE, TestConfig::IMAGEMEMORY_STRICT, targetSize, renderPos, renderSize, 90239));
+               addFunctionCaseWithPrograms<TestConfig>(group, "color_depth_stencil", "Color, depth and stencil attachment case.", createTestShaders, renderPassTest, TestConfig(renderPass, TestConfig::RENDERTYPES_DRAW, TestConfig::COMMANDBUFFERTYPES_INLINE, TestConfig::IMAGEMEMORY_STRICT, targetSize, renderPos, renderSize, 90239));
        }
-
-       return group;
 }
 
 std::string formatToName (VkFormat format)
@@ -4600,13 +5326,23 @@ std::string formatToName (VkFormat format)
        return de::toLower(formatStr.substr(prefix.length()));
 }
 
-de::MovePtr<tcu::TestCaseGroup> createFormatTestGroup(tcu::TestContext& testCtx)
+void addFormatTests (tcu::TestCaseGroup* group)
 {
-       de::MovePtr<tcu::TestCaseGroup> group   (new tcu::TestCaseGroup(testCtx, "formats", "Tests for different image formats."));
+       tcu::TestContext&       testCtx         = group->getTestContext();
+
+       const UVec2                     targetSize      (64, 64);
+       const UVec2                     renderPos       (0, 0);
+       const UVec2                     renderSize      (64, 64);
 
-       const UVec2 targetSize  (64, 64);
-       const UVec2 renderPos   (0, 0);
-       const UVec2 renderSize  (64, 64);
+       const struct
+       {
+               const char* const                       str;
+               const VkAttachmentStoreOp       op;
+       } storeOps[] =
+       {
+               { "store",              VK_ATTACHMENT_STORE_OP_STORE            },
+               { "dont_care",  VK_ATTACHMENT_STORE_OP_DONT_CARE        }
+       };
 
        const struct
        {
@@ -4657,7 +5393,7 @@ de::MovePtr<tcu::TestCaseGroup> createFormatTestGroup(tcu::TestContext& testCtx)
                                                                                                                                                        vector<AttachmentReference>(1, AttachmentReference(0, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL)),
                                                                                                                                                        vector<AttachmentReference>(),
                                                                                                                                                        AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL),
-                                                                                                                                                       vector<AttachmentReference>())),
+                                                                                                                                                       vector<deUint32>())),
                                                                                                 vector<SubpassDependency>());
 
                                addFunctionCaseWithPrograms<TestConfig>(loadOpGroup.get(), renderTypes[renderTypeNdx].str, renderTypes[renderTypeNdx].str, createTestShaders, renderPassTest, TestConfig(renderPass, renderTypes[renderTypeNdx].types, TestConfig::COMMANDBUFFERTYPES_INLINE, TestConfig::IMAGEMEMORY_STRICT, targetSize, renderPos, renderSize, 90239));
@@ -4666,6 +5402,128 @@ de::MovePtr<tcu::TestCaseGroup> createFormatTestGroup(tcu::TestContext& testCtx)
                        formatGroup->addChild(loadOpGroup.release());
                }
 
+               {
+                       de::MovePtr<tcu::TestCaseGroup> inputGroup (new tcu::TestCaseGroup(testCtx, "input", "Test attachment format as input"));
+
+                       for (size_t loadOpNdx = 0; loadOpNdx < DE_LENGTH_OF_ARRAY(loadOps); loadOpNdx++)
+                       {
+                               const VkAttachmentLoadOp                loadOp          = loadOps[loadOpNdx].op;
+                               de::MovePtr<tcu::TestCaseGroup> loadOpGroup     (new tcu::TestCaseGroup(testCtx, loadOps[loadOpNdx].str, loadOps[loadOpNdx].str));
+
+                               for (size_t storeOpNdx = 0; storeOpNdx < DE_LENGTH_OF_ARRAY(storeOps); storeOpNdx++)
+                               {
+                                       const VkAttachmentStoreOp               storeOp                 = storeOps[storeOpNdx].op;
+                                       de::MovePtr<tcu::TestCaseGroup> storeOpGroup    (new tcu::TestCaseGroup(testCtx, storeOps[storeOpNdx].str, storeOps[storeOpNdx].str));
+
+                                       for (size_t renderTypeNdx = 0; renderTypeNdx < DE_LENGTH_OF_ARRAY(renderTypes); renderTypeNdx++)
+                                       {
+                                               {
+                                                       vector<Attachment>                      attachments;
+                                                       vector<Subpass>                         subpasses;
+                                                       vector<SubpassDependency>       deps;
+
+                                                       attachments.push_back(Attachment(format,
+                                                                                                                        VK_SAMPLE_COUNT_1_BIT,
+                                                                                                                        loadOp,
+                                                                                                                        storeOp,
+                                                                                                                        VK_ATTACHMENT_LOAD_OP_DONT_CARE,
+                                                                                                                        VK_ATTACHMENT_STORE_OP_DONT_CARE,
+                                                                                                                        VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
+                                                                                                                        VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL));
+
+                                                       attachments.push_back(Attachment(vk::VK_FORMAT_R8G8B8A8_UNORM,
+                                                                                                                        VK_SAMPLE_COUNT_1_BIT,
+                                                                                                                        VK_ATTACHMENT_LOAD_OP_DONT_CARE,
+                                                                                                                        VK_ATTACHMENT_STORE_OP_STORE,
+                                                                                                                        VK_ATTACHMENT_LOAD_OP_DONT_CARE,
+                                                                                                                        VK_ATTACHMENT_STORE_OP_DONT_CARE,
+                                                                                                                        VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
+                                                                                                                        VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL));
+
+                                                       subpasses.push_back(Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS,
+                                                                                                               0u,
+                                                                                                               vector<AttachmentReference>(),
+                                                                                                               vector<AttachmentReference>(1, AttachmentReference(0, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL)),
+                                                                                                               vector<AttachmentReference>(),
+                                                                                                               AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL),
+                                                                                                               vector<deUint32>()));
+                                                       subpasses.push_back(Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS,
+                                                                                                               0u,
+                                                                                                               vector<AttachmentReference>(1, AttachmentReference(0, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL)),
+                                                                                                               vector<AttachmentReference>(1, AttachmentReference(1, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL)),
+                                                                                                               vector<AttachmentReference>(),
+                                                                                                               AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL),
+                                                                                                               vector<deUint32>()));
+
+                                                       deps.push_back(SubpassDependency(0, 1,
+
+                                                                                                                       vk::VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
+                                                                                                                       vk::VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
+
+                                                                                                                       vk::VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
+                                                                                                                       vk::VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
+                                                                                                                       vk::VK_DEPENDENCY_BY_REGION_BIT));
+
+                                                       {
+                                                               const RenderPass renderPass (attachments, subpasses, deps);
+
+                                                               addFunctionCaseWithPrograms<TestConfig>(storeOpGroup.get(), renderTypes[renderTypeNdx].str, renderTypes[renderTypeNdx].str, createTestShaders, renderPassTest, TestConfig(renderPass, renderTypes[renderTypeNdx].types, TestConfig::COMMANDBUFFERTYPES_INLINE, TestConfig::IMAGEMEMORY_STRICT, targetSize, renderPos, renderSize, 89246));
+                                                       }
+                                               }
+                                               {
+                                                       vector<Attachment>                      attachments;
+                                                       vector<Subpass>                         subpasses;
+                                                       vector<SubpassDependency>       deps;
+
+                                                       attachments.push_back(Attachment(format,
+                                                                                                                        VK_SAMPLE_COUNT_1_BIT,
+                                                                                                                        loadOp,
+                                                                                                                        storeOp,
+                                                                                                                        VK_ATTACHMENT_LOAD_OP_DONT_CARE,
+                                                                                                                        VK_ATTACHMENT_STORE_OP_DONT_CARE,
+                                                                                                                        VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
+                                                                                                                        VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL));
+
+                                                       subpasses.push_back(Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS,
+                                                                                                               0u,
+                                                                                                               vector<AttachmentReference>(),
+                                                                                                               vector<AttachmentReference>(1, AttachmentReference(0, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL)),
+                                                                                                               vector<AttachmentReference>(),
+                                                                                                               AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL),
+                                                                                                               vector<deUint32>()));
+                                                       subpasses.push_back(Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS,
+                                                                                                               0u,
+                                                                                                               vector<AttachmentReference>(1, AttachmentReference(0, VK_IMAGE_LAYOUT_GENERAL)),
+                                                                                                               vector<AttachmentReference>(1, AttachmentReference(0, VK_IMAGE_LAYOUT_GENERAL)),
+                                                                                                               vector<AttachmentReference>(),
+                                                                                                               AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL),
+                                                                                                               vector<deUint32>()));
+
+                                                       deps.push_back(SubpassDependency(0, 1,
+                                                                                                                       vk::VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
+                                                                                                                       vk::VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
+
+                                                                                                                       vk::VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
+                                                                                                                       vk::VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
+                                                                                                                       vk::VK_DEPENDENCY_BY_REGION_BIT));
+
+                                                       {
+                                                               const RenderPass renderPass (attachments, subpasses, deps);
+
+                                                               addFunctionCaseWithPrograms<TestConfig>(storeOpGroup.get(), string("self_dep_") + renderTypes[renderTypeNdx].str, string("self_dep_") + renderTypes[renderTypeNdx].str, createTestShaders, renderPassTest, TestConfig(renderPass, renderTypes[renderTypeNdx].types, TestConfig::COMMANDBUFFERTYPES_INLINE, TestConfig::IMAGEMEMORY_STRICT, targetSize, renderPos, renderSize, 89246));
+                                                       }
+                                               }
+                                       }
+
+                                       loadOpGroup->addChild(storeOpGroup.release());
+                               }
+
+                               inputGroup->addChild(loadOpGroup.release());
+                       }
+
+                       formatGroup->addChild(inputGroup.release());
+               }
+
                group->addChild(formatGroup.release());
        }
 
@@ -4699,7 +5557,7 @@ de::MovePtr<tcu::TestCaseGroup> createFormatTestGroup(tcu::TestContext& testCtx)
                                                                                                                                                        vector<AttachmentReference>(),
                                                                                                                                                        vector<AttachmentReference>(),
                                                                                                                                                        AttachmentReference(0, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL),
-                                                                                                                                                       vector<AttachmentReference>())),
+                                                                                                                                                       vector<deUint32>())),
                                                                                                 vector<SubpassDependency>());
 
                                addFunctionCaseWithPrograms<TestConfig>(loadOpGroup.get(), renderTypes[renderTypeNdx].str, renderTypes[renderTypeNdx].str, createTestShaders, renderPassTest, TestConfig(renderPass, renderTypes[renderTypeNdx].types, TestConfig::COMMANDBUFFERTYPES_INLINE, TestConfig::IMAGEMEMORY_STRICT, targetSize, renderPos, renderSize, 90239));
@@ -4708,10 +5566,136 @@ de::MovePtr<tcu::TestCaseGroup> createFormatTestGroup(tcu::TestContext& testCtx)
                        formatGroup->addChild(loadOpGroup.release());
                }
 
+               {
+                       de::MovePtr<tcu::TestCaseGroup> inputGroup (new tcu::TestCaseGroup(testCtx, "input", "Test attachment format as input"));
+
+                       for (size_t loadOpNdx = 0; loadOpNdx < DE_LENGTH_OF_ARRAY(loadOps); loadOpNdx++)
+                       {
+                               const VkAttachmentLoadOp                loadOp          = loadOps[loadOpNdx].op;
+                               de::MovePtr<tcu::TestCaseGroup> loadOpGroup     (new tcu::TestCaseGroup(testCtx, loadOps[loadOpNdx].str, loadOps[loadOpNdx].str));
+
+                               for (size_t storeOpNdx = 0; storeOpNdx < DE_LENGTH_OF_ARRAY(storeOps); storeOpNdx++)
+                               {
+                                       const VkAttachmentStoreOp               storeOp                 = storeOps[storeOpNdx].op;
+                                       de::MovePtr<tcu::TestCaseGroup> storeOpGroup    (new tcu::TestCaseGroup(testCtx, storeOps[storeOpNdx].str, storeOps[storeOpNdx].str));
+
+                                       for (size_t renderTypeNdx = 0; renderTypeNdx < DE_LENGTH_OF_ARRAY(renderTypes); renderTypeNdx++)
+                                       {
+                                               {
+                                                       vector<Attachment>                      attachments;
+                                                       vector<Subpass>                         subpasses;
+                                                       vector<SubpassDependency>       deps;
+
+                                                       attachments.push_back(Attachment(vkFormat,
+                                                                                                                        VK_SAMPLE_COUNT_1_BIT,
+                                                                                                                        loadOp,
+                                                                                                                        storeOp,
+                                                                                                                        VK_ATTACHMENT_LOAD_OP_DONT_CARE,
+                                                                                                                        VK_ATTACHMENT_STORE_OP_DONT_CARE,
+                                                                                                                        VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
+                                                                                                                        VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL));
+
+                                                       attachments.push_back(Attachment(vk::VK_FORMAT_R8G8B8A8_UNORM,
+                                                                                                                        VK_SAMPLE_COUNT_1_BIT,
+                                                                                                                        VK_ATTACHMENT_LOAD_OP_DONT_CARE,
+                                                                                                                        VK_ATTACHMENT_STORE_OP_STORE,
+                                                                                                                        VK_ATTACHMENT_LOAD_OP_DONT_CARE,
+                                                                                                                        VK_ATTACHMENT_STORE_OP_DONT_CARE,
+                                                                                                                        VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
+                                                                                                                        VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL));
+
+                                                       subpasses.push_back(Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS,
+                                                                                                               0u,
+                                                                                                               vector<AttachmentReference>(),
+                                                                                                               vector<AttachmentReference>(),
+                                                                                                               vector<AttachmentReference>(),
+                                                                                                               AttachmentReference(0, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL),
+                                                                                                               vector<deUint32>()));
+                                                       subpasses.push_back(Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS,
+                                                                                                               0u,
+                                                                                                               vector<AttachmentReference>(1, AttachmentReference(0, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL)),
+                                                                                                               vector<AttachmentReference>(1, AttachmentReference(1, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL)),
+                                                                                                               vector<AttachmentReference>(),
+                                                                                                               AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL),
+                                                                                                               vector<deUint32>()));
+
+                                                       deps.push_back(SubpassDependency(0, 1,
+                                                                                                                       vk::VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
+                                                                                                                       vk::VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
+
+                                                                                                                       vk::VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
+                                                                                                                       vk::VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
+                                                                                                                       0u));
+
+                                                       deps.push_back(SubpassDependency(1, 1,
+                                                                                                                       vk::VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
+                                                                                                                       vk::VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
+
+                                                                                                                       vk::VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
+                                                                                                                       vk::VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
+                                                                                                                       vk::VK_DEPENDENCY_BY_REGION_BIT));
+                                                       {
+                                                               const RenderPass renderPass (attachments, subpasses, deps);
+
+                                                               addFunctionCaseWithPrograms<TestConfig>(storeOpGroup.get(), renderTypes[renderTypeNdx].str, renderTypes[renderTypeNdx].str, createTestShaders, renderPassTest, TestConfig(renderPass, renderTypes[renderTypeNdx].types, TestConfig::COMMANDBUFFERTYPES_INLINE, TestConfig::IMAGEMEMORY_STRICT, targetSize, renderPos, renderSize, 89246));
+                                                       }
+                                               }
+                                               {
+                                                       vector<Attachment>                      attachments;
+                                                       vector<Subpass>                         subpasses;
+                                                       vector<SubpassDependency>       deps;
+
+                                                       attachments.push_back(Attachment(vkFormat,
+                                                                                                                        VK_SAMPLE_COUNT_1_BIT,
+                                                                                                                        loadOp,
+                                                                                                                        storeOp,
+                                                                                                                        VK_ATTACHMENT_LOAD_OP_DONT_CARE,
+                                                                                                                        VK_ATTACHMENT_STORE_OP_DONT_CARE,
+                                                                                                                        VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
+                                                                                                                        VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL));
+
+                                                       subpasses.push_back(Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS,
+                                                                                                               0u,
+                                                                                                               vector<AttachmentReference>(),
+                                                                                                               vector<AttachmentReference>(),
+                                                                                                               vector<AttachmentReference>(),
+                                                                                                               AttachmentReference(0, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL),
+                                                                                                               vector<deUint32>()));
+                                                       subpasses.push_back(Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS,
+                                                                                                               0u,
+                                                                                                               vector<AttachmentReference>(1, AttachmentReference(0, VK_IMAGE_LAYOUT_GENERAL)),
+                                                                                                               vector<AttachmentReference>(),
+                                                                                                               vector<AttachmentReference>(),
+                                                                                                               AttachmentReference(0, VK_IMAGE_LAYOUT_GENERAL),
+                                                                                                               vector<deUint32>()));
+
+                                                       deps.push_back(SubpassDependency(0, 1,
+                                                                                                                       vk::VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | vk::VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
+                                                                                                                       vk::VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
+
+                                                                                                                       vk::VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
+                                                                                                                       vk::VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
+                                                                                                                       vk::VK_DEPENDENCY_BY_REGION_BIT));
+
+                                                       {
+                                                               const RenderPass renderPass (attachments, subpasses, deps);
+
+                                                               addFunctionCaseWithPrograms<TestConfig>(storeOpGroup.get(), string("self_dep_") + renderTypes[renderTypeNdx].str, string("self_dep_") + renderTypes[renderTypeNdx].str, createTestShaders, renderPassTest, TestConfig(renderPass, renderTypes[renderTypeNdx].types, TestConfig::COMMANDBUFFERTYPES_INLINE, TestConfig::IMAGEMEMORY_STRICT, targetSize, renderPos, renderSize, 89246));
+                                                       }
+                                               }
+                                       }
+
+                                       loadOpGroup->addChild(storeOpGroup.release());
+                               }
+
+                               inputGroup->addChild(loadOpGroup.release());
+                       }
+
+                       formatGroup->addChild(inputGroup.release());
+               }
+
                group->addChild(formatGroup.release());
        }
-
-       return group;
 }
 
 } // anonymous
@@ -4720,10 +5704,10 @@ tcu::TestCaseGroup* createRenderPassTests (tcu::TestContext& testCtx)
 {
        de::MovePtr<tcu::TestCaseGroup> renderpassTests (new tcu::TestCaseGroup(testCtx, "renderpass", "RenderPass Tests"));
 
-       renderpassTests->addChild(createSimpleTestGroup(testCtx).release());
-       renderpassTests->addChild(createFormatTestGroup(testCtx).release());
-       renderpassTests->addChild(createAttachmentTestCaseGroup(testCtx).release());
-       renderpassTests->addChild(createAttachmentAllocationTestGroup(testCtx).release());
+       addTestGroup(renderpassTests.get(), "simple", "Simple basic render pass tests", addSimpleTests);
+       addTestGroup(renderpassTests.get(), "formats", "Tests for different image formats.", addFormatTests);
+       addTestGroup(renderpassTests.get(), "attachment", "Attachment format and count tests with load and store ops and image layouts", addAttachmentTests);
+       addTestGroup(renderpassTests.get(), "attachment_allocation", "Attachment allocation tests", addAttachmentAllocationTests);
 
        return renderpassTests.release();
 }
index 0c63987..4d7ca88 100644 (file)
@@ -90431,6 +90431,42 @@ dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.load.clear_draw
 dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.dont_care.clear
 dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.dont_care.draw
 dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.clear.store.clear
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.clear.store.draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.load.store.clear
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.load.store.draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r5g6b5_unorm_pack16.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r8_unorm.clear.clear
 dEQP-VK.renderpass.formats.r8_unorm.clear.draw
 dEQP-VK.renderpass.formats.r8_unorm.clear.clear_draw
@@ -90440,6 +90476,42 @@ dEQP-VK.renderpass.formats.r8_unorm.load.clear_draw
 dEQP-VK.renderpass.formats.r8_unorm.dont_care.clear
 dEQP-VK.renderpass.formats.r8_unorm.dont_care.draw
 dEQP-VK.renderpass.formats.r8_unorm.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.clear.store.clear
+dEQP-VK.renderpass.formats.r8_unorm.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8_unorm.input.clear.store.draw
+dEQP-VK.renderpass.formats.r8_unorm.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r8_unorm.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8_unorm.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r8_unorm.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.load.store.clear
+dEQP-VK.renderpass.formats.r8_unorm.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8_unorm.input.load.store.draw
+dEQP-VK.renderpass.formats.r8_unorm.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r8_unorm.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8_unorm.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r8_unorm.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r8_unorm.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8_unorm.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r8_unorm.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r8_unorm.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8_unorm.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r8_unorm.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8_unorm.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r8_snorm.clear.clear
 dEQP-VK.renderpass.formats.r8_snorm.clear.draw
 dEQP-VK.renderpass.formats.r8_snorm.clear.clear_draw
@@ -90449,6 +90521,42 @@ dEQP-VK.renderpass.formats.r8_snorm.load.clear_draw
 dEQP-VK.renderpass.formats.r8_snorm.dont_care.clear
 dEQP-VK.renderpass.formats.r8_snorm.dont_care.draw
 dEQP-VK.renderpass.formats.r8_snorm.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.clear.store.clear
+dEQP-VK.renderpass.formats.r8_snorm.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8_snorm.input.clear.store.draw
+dEQP-VK.renderpass.formats.r8_snorm.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r8_snorm.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8_snorm.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r8_snorm.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.load.store.clear
+dEQP-VK.renderpass.formats.r8_snorm.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8_snorm.input.load.store.draw
+dEQP-VK.renderpass.formats.r8_snorm.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r8_snorm.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8_snorm.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r8_snorm.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r8_snorm.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8_snorm.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r8_snorm.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r8_snorm.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8_snorm.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r8_snorm.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8_snorm.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r8_uint.clear.clear
 dEQP-VK.renderpass.formats.r8_uint.clear.draw
 dEQP-VK.renderpass.formats.r8_uint.clear.clear_draw
@@ -90458,6 +90566,42 @@ dEQP-VK.renderpass.formats.r8_uint.load.clear_draw
 dEQP-VK.renderpass.formats.r8_uint.dont_care.clear
 dEQP-VK.renderpass.formats.r8_uint.dont_care.draw
 dEQP-VK.renderpass.formats.r8_uint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8_uint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r8_uint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8_uint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r8_uint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8_uint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r8_uint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_uint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r8_uint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8_uint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r8_uint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8_uint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8_uint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_uint.input.load.store.clear
+dEQP-VK.renderpass.formats.r8_uint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8_uint.input.load.store.draw
+dEQP-VK.renderpass.formats.r8_uint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8_uint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r8_uint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_uint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r8_uint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8_uint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r8_uint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8_uint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8_uint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_uint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r8_uint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8_uint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r8_uint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8_uint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r8_uint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_uint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r8_uint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8_uint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r8_uint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8_uint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8_uint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r8_sint.clear.clear
 dEQP-VK.renderpass.formats.r8_sint.clear.draw
 dEQP-VK.renderpass.formats.r8_sint.clear.clear_draw
@@ -90467,6 +90611,42 @@ dEQP-VK.renderpass.formats.r8_sint.load.clear_draw
 dEQP-VK.renderpass.formats.r8_sint.dont_care.clear
 dEQP-VK.renderpass.formats.r8_sint.dont_care.draw
 dEQP-VK.renderpass.formats.r8_sint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8_sint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r8_sint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8_sint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r8_sint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8_sint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r8_sint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_sint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r8_sint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8_sint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r8_sint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8_sint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8_sint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_sint.input.load.store.clear
+dEQP-VK.renderpass.formats.r8_sint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8_sint.input.load.store.draw
+dEQP-VK.renderpass.formats.r8_sint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8_sint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r8_sint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_sint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r8_sint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8_sint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r8_sint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8_sint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8_sint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_sint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r8_sint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8_sint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r8_sint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8_sint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r8_sint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8_sint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r8_sint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8_sint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r8_sint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8_sint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8_sint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r8g8_unorm.clear.clear
 dEQP-VK.renderpass.formats.r8g8_unorm.clear.draw
 dEQP-VK.renderpass.formats.r8g8_unorm.clear.clear_draw
@@ -90476,6 +90656,42 @@ dEQP-VK.renderpass.formats.r8g8_unorm.load.clear_draw
 dEQP-VK.renderpass.formats.r8g8_unorm.dont_care.clear
 dEQP-VK.renderpass.formats.r8g8_unorm.dont_care.draw
 dEQP-VK.renderpass.formats.r8g8_unorm.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.clear.store.clear
+dEQP-VK.renderpass.formats.r8g8_unorm.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_unorm.input.clear.store.draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8_unorm.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_unorm.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.load.store.clear
+dEQP-VK.renderpass.formats.r8g8_unorm.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_unorm.input.load.store.draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8_unorm.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_unorm.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r8g8_unorm.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_unorm.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8_unorm.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_unorm.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8_unorm.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r8g8_snorm.clear.clear
 dEQP-VK.renderpass.formats.r8g8_snorm.clear.draw
 dEQP-VK.renderpass.formats.r8g8_snorm.clear.clear_draw
@@ -90485,6 +90701,42 @@ dEQP-VK.renderpass.formats.r8g8_snorm.load.clear_draw
 dEQP-VK.renderpass.formats.r8g8_snorm.dont_care.clear
 dEQP-VK.renderpass.formats.r8g8_snorm.dont_care.draw
 dEQP-VK.renderpass.formats.r8g8_snorm.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.clear.store.clear
+dEQP-VK.renderpass.formats.r8g8_snorm.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_snorm.input.clear.store.draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8_snorm.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_snorm.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.load.store.clear
+dEQP-VK.renderpass.formats.r8g8_snorm.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_snorm.input.load.store.draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8_snorm.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_snorm.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r8g8_snorm.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_snorm.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8_snorm.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_snorm.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8_snorm.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r8g8_uint.clear.clear
 dEQP-VK.renderpass.formats.r8g8_uint.clear.draw
 dEQP-VK.renderpass.formats.r8g8_uint.clear.clear_draw
@@ -90494,6 +90746,42 @@ dEQP-VK.renderpass.formats.r8g8_uint.load.clear_draw
 dEQP-VK.renderpass.formats.r8g8_uint.dont_care.clear
 dEQP-VK.renderpass.formats.r8g8_uint.dont_care.draw
 dEQP-VK.renderpass.formats.r8g8_uint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r8g8_uint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_uint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8_uint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_uint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.load.store.clear
+dEQP-VK.renderpass.formats.r8g8_uint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_uint.input.load.store.draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8_uint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_uint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r8g8_uint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_uint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8_uint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_uint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8_uint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r8g8_sint.clear.clear
 dEQP-VK.renderpass.formats.r8g8_sint.clear.draw
 dEQP-VK.renderpass.formats.r8g8_sint.clear.clear_draw
@@ -90503,6 +90791,42 @@ dEQP-VK.renderpass.formats.r8g8_sint.load.clear_draw
 dEQP-VK.renderpass.formats.r8g8_sint.dont_care.clear
 dEQP-VK.renderpass.formats.r8g8_sint.dont_care.draw
 dEQP-VK.renderpass.formats.r8g8_sint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r8g8_sint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_sint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8_sint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_sint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.load.store.clear
+dEQP-VK.renderpass.formats.r8g8_sint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_sint.input.load.store.draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8_sint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_sint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r8g8_sint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_sint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8_sint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8_sint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8_sint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r8g8b8a8_unorm.clear.clear
 dEQP-VK.renderpass.formats.r8g8b8a8_unorm.clear.draw
 dEQP-VK.renderpass.formats.r8g8b8a8_unorm.clear.clear_draw
@@ -90512,6 +90836,42 @@ dEQP-VK.renderpass.formats.r8g8b8a8_unorm.load.clear_draw
 dEQP-VK.renderpass.formats.r8g8b8a8_unorm.dont_care.clear
 dEQP-VK.renderpass.formats.r8g8b8a8_unorm.dont_care.draw
 dEQP-VK.renderpass.formats.r8g8b8a8_unorm.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.clear.store.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.clear.store.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.load.store.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.load.store.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_unorm.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r8g8b8a8_snorm.clear.clear
 dEQP-VK.renderpass.formats.r8g8b8a8_snorm.clear.draw
 dEQP-VK.renderpass.formats.r8g8b8a8_snorm.clear.clear_draw
@@ -90521,6 +90881,42 @@ dEQP-VK.renderpass.formats.r8g8b8a8_snorm.load.clear_draw
 dEQP-VK.renderpass.formats.r8g8b8a8_snorm.dont_care.clear
 dEQP-VK.renderpass.formats.r8g8b8a8_snorm.dont_care.draw
 dEQP-VK.renderpass.formats.r8g8b8a8_snorm.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.clear.store.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.clear.store.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.load.store.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.load.store.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_snorm.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r8g8b8a8_uint.clear.clear
 dEQP-VK.renderpass.formats.r8g8b8a8_uint.clear.draw
 dEQP-VK.renderpass.formats.r8g8b8a8_uint.clear.clear_draw
@@ -90530,6 +90926,42 @@ dEQP-VK.renderpass.formats.r8g8b8a8_uint.load.clear_draw
 dEQP-VK.renderpass.formats.r8g8b8a8_uint.dont_care.clear
 dEQP-VK.renderpass.formats.r8g8b8a8_uint.dont_care.draw
 dEQP-VK.renderpass.formats.r8g8b8a8_uint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.load.store.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.load.store.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_uint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r8g8b8a8_sint.clear.clear
 dEQP-VK.renderpass.formats.r8g8b8a8_sint.clear.draw
 dEQP-VK.renderpass.formats.r8g8b8a8_sint.clear.clear_draw
@@ -90539,6 +90971,42 @@ dEQP-VK.renderpass.formats.r8g8b8a8_sint.load.clear_draw
 dEQP-VK.renderpass.formats.r8g8b8a8_sint.dont_care.clear
 dEQP-VK.renderpass.formats.r8g8b8a8_sint.dont_care.draw
 dEQP-VK.renderpass.formats.r8g8b8a8_sint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.load.store.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.load.store.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_sint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r8g8b8a8_srgb.clear.clear
 dEQP-VK.renderpass.formats.r8g8b8a8_srgb.clear.draw
 dEQP-VK.renderpass.formats.r8g8b8a8_srgb.clear.clear_draw
@@ -90548,6 +91016,42 @@ dEQP-VK.renderpass.formats.r8g8b8a8_srgb.load.clear_draw
 dEQP-VK.renderpass.formats.r8g8b8a8_srgb.dont_care.clear
 dEQP-VK.renderpass.formats.r8g8b8a8_srgb.dont_care.draw
 dEQP-VK.renderpass.formats.r8g8b8a8_srgb.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.clear.store.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.clear.store.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.load.store.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.load.store.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r8g8b8a8_srgb.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.clear.clear
 dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.clear.draw
 dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.clear.clear_draw
@@ -90557,6 +91061,42 @@ dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.load.clear_draw
 dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.dont_care.clear
 dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.dont_care.draw
 dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.clear.store.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.clear.store.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.load.store.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.load.store.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_unorm_pack32.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.clear.clear
 dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.clear.draw
 dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.clear.clear_draw
@@ -90566,6 +91106,42 @@ dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.load.clear_draw
 dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.dont_care.clear
 dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.dont_care.draw
 dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.clear.store.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.clear.store.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.load.store.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.load.store.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_snorm_pack32.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.clear.clear
 dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.clear.draw
 dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.clear.clear_draw
@@ -90575,6 +91151,42 @@ dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.load.clear_draw
 dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.dont_care.clear
 dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.dont_care.draw
 dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.clear.store.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.clear.store.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.load.store.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.load.store.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_uint_pack32.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.clear.clear
 dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.clear.draw
 dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.clear.clear_draw
@@ -90584,6 +91196,42 @@ dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.load.clear_draw
 dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.dont_care.clear
 dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.dont_care.draw
 dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.clear.store.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.clear.store.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.load.store.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.load.store.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_sint_pack32.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.clear.clear
 dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.clear.draw
 dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.clear.clear_draw
@@ -90593,6 +91241,42 @@ dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.load.clear_draw
 dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.dont_care.clear
 dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.dont_care.draw
 dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.clear.store.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.clear.store.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.load.store.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.load.store.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a8b8g8r8_srgb_pack32.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.b8g8r8a8_unorm.clear.clear
 dEQP-VK.renderpass.formats.b8g8r8a8_unorm.clear.draw
 dEQP-VK.renderpass.formats.b8g8r8a8_unorm.clear.clear_draw
@@ -90602,6 +91286,42 @@ dEQP-VK.renderpass.formats.b8g8r8a8_unorm.load.clear_draw
 dEQP-VK.renderpass.formats.b8g8r8a8_unorm.dont_care.clear
 dEQP-VK.renderpass.formats.b8g8r8a8_unorm.dont_care.draw
 dEQP-VK.renderpass.formats.b8g8r8a8_unorm.dont_care.clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.clear.store.clear
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.clear.store.draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.load.store.clear
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.load.store.draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_unorm.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.b8g8r8a8_srgb.clear.clear
 dEQP-VK.renderpass.formats.b8g8r8a8_srgb.clear.draw
 dEQP-VK.renderpass.formats.b8g8r8a8_srgb.clear.clear_draw
@@ -90611,6 +91331,42 @@ dEQP-VK.renderpass.formats.b8g8r8a8_srgb.load.clear_draw
 dEQP-VK.renderpass.formats.b8g8r8a8_srgb.dont_care.clear
 dEQP-VK.renderpass.formats.b8g8r8a8_srgb.dont_care.draw
 dEQP-VK.renderpass.formats.b8g8r8a8_srgb.dont_care.clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.clear.store.clear
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.clear.store.draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.load.store.clear
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.load.store.draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.b8g8r8a8_srgb.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.clear.clear
 dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.clear.draw
 dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.clear.clear_draw
@@ -90620,6 +91376,42 @@ dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.load.clear_draw
 dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.dont_care.clear
 dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.dont_care.draw
 dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.clear.store.clear
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.clear.store.draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.load.store.clear
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.load.store.draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a2r10g10b10_unorm_pack32.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.clear.clear
 dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.clear.draw
 dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.clear.clear_draw
@@ -90629,6 +91421,42 @@ dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.load.clear_draw
 dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.dont_care.clear
 dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.dont_care.draw
 dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.clear.store.clear
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.clear.store.draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.load.store.clear
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.load.store.draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_unorm_pack32.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.clear.clear
 dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.clear.draw
 dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.clear.clear_draw
@@ -90638,6 +91466,42 @@ dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.load.clear_draw
 dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.dont_care.clear
 dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.dont_care.draw
 dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.clear.store.clear
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.clear.store.draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.load.store.clear
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.load.store.draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.a2b10g10r10_uint_pack32.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r16_unorm.clear.clear
 dEQP-VK.renderpass.formats.r16_unorm.clear.draw
 dEQP-VK.renderpass.formats.r16_unorm.clear.clear_draw
@@ -90647,6 +91511,42 @@ dEQP-VK.renderpass.formats.r16_unorm.load.clear_draw
 dEQP-VK.renderpass.formats.r16_unorm.dont_care.clear
 dEQP-VK.renderpass.formats.r16_unorm.dont_care.draw
 dEQP-VK.renderpass.formats.r16_unorm.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.clear.store.clear
+dEQP-VK.renderpass.formats.r16_unorm.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16_unorm.input.clear.store.draw
+dEQP-VK.renderpass.formats.r16_unorm.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r16_unorm.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16_unorm.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r16_unorm.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.load.store.clear
+dEQP-VK.renderpass.formats.r16_unorm.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16_unorm.input.load.store.draw
+dEQP-VK.renderpass.formats.r16_unorm.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r16_unorm.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16_unorm.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r16_unorm.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r16_unorm.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16_unorm.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r16_unorm.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r16_unorm.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16_unorm.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r16_unorm.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_unorm.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r16_snorm.clear.clear
 dEQP-VK.renderpass.formats.r16_snorm.clear.draw
 dEQP-VK.renderpass.formats.r16_snorm.clear.clear_draw
@@ -90656,6 +91556,42 @@ dEQP-VK.renderpass.formats.r16_snorm.load.clear_draw
 dEQP-VK.renderpass.formats.r16_snorm.dont_care.clear
 dEQP-VK.renderpass.formats.r16_snorm.dont_care.draw
 dEQP-VK.renderpass.formats.r16_snorm.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.clear.store.clear
+dEQP-VK.renderpass.formats.r16_snorm.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16_snorm.input.clear.store.draw
+dEQP-VK.renderpass.formats.r16_snorm.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r16_snorm.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16_snorm.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r16_snorm.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.load.store.clear
+dEQP-VK.renderpass.formats.r16_snorm.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16_snorm.input.load.store.draw
+dEQP-VK.renderpass.formats.r16_snorm.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r16_snorm.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16_snorm.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r16_snorm.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r16_snorm.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16_snorm.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r16_snorm.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r16_snorm.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16_snorm.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r16_snorm.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_snorm.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r16_uint.clear.clear
 dEQP-VK.renderpass.formats.r16_uint.clear.draw
 dEQP-VK.renderpass.formats.r16_uint.clear.clear_draw
@@ -90665,6 +91601,42 @@ dEQP-VK.renderpass.formats.r16_uint.load.clear_draw
 dEQP-VK.renderpass.formats.r16_uint.dont_care.clear
 dEQP-VK.renderpass.formats.r16_uint.dont_care.draw
 dEQP-VK.renderpass.formats.r16_uint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_uint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r16_uint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16_uint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r16_uint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16_uint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r16_uint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_uint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r16_uint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16_uint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r16_uint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16_uint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_uint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_uint.input.load.store.clear
+dEQP-VK.renderpass.formats.r16_uint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16_uint.input.load.store.draw
+dEQP-VK.renderpass.formats.r16_uint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16_uint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r16_uint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_uint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r16_uint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16_uint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r16_uint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16_uint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_uint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_uint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r16_uint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16_uint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r16_uint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16_uint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r16_uint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_uint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r16_uint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16_uint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r16_uint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16_uint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_uint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r16_sint.clear.clear
 dEQP-VK.renderpass.formats.r16_sint.clear.draw
 dEQP-VK.renderpass.formats.r16_sint.clear.clear_draw
@@ -90674,6 +91646,42 @@ dEQP-VK.renderpass.formats.r16_sint.load.clear_draw
 dEQP-VK.renderpass.formats.r16_sint.dont_care.clear
 dEQP-VK.renderpass.formats.r16_sint.dont_care.draw
 dEQP-VK.renderpass.formats.r16_sint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_sint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r16_sint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16_sint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r16_sint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16_sint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r16_sint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_sint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r16_sint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16_sint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r16_sint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16_sint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_sint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_sint.input.load.store.clear
+dEQP-VK.renderpass.formats.r16_sint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16_sint.input.load.store.draw
+dEQP-VK.renderpass.formats.r16_sint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16_sint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r16_sint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_sint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r16_sint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16_sint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r16_sint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16_sint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_sint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_sint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r16_sint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16_sint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r16_sint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16_sint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r16_sint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_sint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r16_sint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16_sint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r16_sint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16_sint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_sint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r16_sfloat.clear.clear
 dEQP-VK.renderpass.formats.r16_sfloat.clear.draw
 dEQP-VK.renderpass.formats.r16_sfloat.clear.clear_draw
@@ -90683,6 +91691,42 @@ dEQP-VK.renderpass.formats.r16_sfloat.load.clear_draw
 dEQP-VK.renderpass.formats.r16_sfloat.dont_care.clear
 dEQP-VK.renderpass.formats.r16_sfloat.dont_care.draw
 dEQP-VK.renderpass.formats.r16_sfloat.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.clear.store.clear
+dEQP-VK.renderpass.formats.r16_sfloat.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16_sfloat.input.clear.store.draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r16_sfloat.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16_sfloat.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.load.store.clear
+dEQP-VK.renderpass.formats.r16_sfloat.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16_sfloat.input.load.store.draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r16_sfloat.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16_sfloat.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r16_sfloat.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16_sfloat.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r16_sfloat.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16_sfloat.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16_sfloat.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r16g16_unorm.clear.clear
 dEQP-VK.renderpass.formats.r16g16_unorm.clear.draw
 dEQP-VK.renderpass.formats.r16g16_unorm.clear.clear_draw
@@ -90692,6 +91736,42 @@ dEQP-VK.renderpass.formats.r16g16_unorm.load.clear_draw
 dEQP-VK.renderpass.formats.r16g16_unorm.dont_care.clear
 dEQP-VK.renderpass.formats.r16g16_unorm.dont_care.draw
 dEQP-VK.renderpass.formats.r16g16_unorm.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.clear.store.clear
+dEQP-VK.renderpass.formats.r16g16_unorm.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_unorm.input.clear.store.draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16_unorm.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_unorm.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.load.store.clear
+dEQP-VK.renderpass.formats.r16g16_unorm.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_unorm.input.load.store.draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16_unorm.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_unorm.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r16g16_unorm.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_unorm.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16_unorm.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_unorm.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_unorm.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r16g16_snorm.clear.clear
 dEQP-VK.renderpass.formats.r16g16_snorm.clear.draw
 dEQP-VK.renderpass.formats.r16g16_snorm.clear.clear_draw
@@ -90701,6 +91781,42 @@ dEQP-VK.renderpass.formats.r16g16_snorm.load.clear_draw
 dEQP-VK.renderpass.formats.r16g16_snorm.dont_care.clear
 dEQP-VK.renderpass.formats.r16g16_snorm.dont_care.draw
 dEQP-VK.renderpass.formats.r16g16_snorm.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.clear.store.clear
+dEQP-VK.renderpass.formats.r16g16_snorm.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_snorm.input.clear.store.draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16_snorm.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_snorm.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.load.store.clear
+dEQP-VK.renderpass.formats.r16g16_snorm.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_snorm.input.load.store.draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16_snorm.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_snorm.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r16g16_snorm.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_snorm.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16_snorm.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_snorm.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_snorm.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r16g16_uint.clear.clear
 dEQP-VK.renderpass.formats.r16g16_uint.clear.draw
 dEQP-VK.renderpass.formats.r16g16_uint.clear.clear_draw
@@ -90710,6 +91826,42 @@ dEQP-VK.renderpass.formats.r16g16_uint.load.clear_draw
 dEQP-VK.renderpass.formats.r16g16_uint.dont_care.clear
 dEQP-VK.renderpass.formats.r16g16_uint.dont_care.draw
 dEQP-VK.renderpass.formats.r16g16_uint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r16g16_uint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_uint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16_uint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_uint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.load.store.clear
+dEQP-VK.renderpass.formats.r16g16_uint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_uint.input.load.store.draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16_uint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_uint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r16g16_uint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_uint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16_uint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_uint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_uint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r16g16_sint.clear.clear
 dEQP-VK.renderpass.formats.r16g16_sint.clear.draw
 dEQP-VK.renderpass.formats.r16g16_sint.clear.clear_draw
@@ -90719,6 +91871,42 @@ dEQP-VK.renderpass.formats.r16g16_sint.load.clear_draw
 dEQP-VK.renderpass.formats.r16g16_sint.dont_care.clear
 dEQP-VK.renderpass.formats.r16g16_sint.dont_care.draw
 dEQP-VK.renderpass.formats.r16g16_sint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r16g16_sint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_sint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16_sint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_sint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.load.store.clear
+dEQP-VK.renderpass.formats.r16g16_sint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_sint.input.load.store.draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16_sint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_sint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r16g16_sint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_sint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16_sint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_sint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_sint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r16g16_sfloat.clear.clear
 dEQP-VK.renderpass.formats.r16g16_sfloat.clear.draw
 dEQP-VK.renderpass.formats.r16g16_sfloat.clear.clear_draw
@@ -90728,6 +91916,42 @@ dEQP-VK.renderpass.formats.r16g16_sfloat.load.clear_draw
 dEQP-VK.renderpass.formats.r16g16_sfloat.dont_care.clear
 dEQP-VK.renderpass.formats.r16g16_sfloat.dont_care.draw
 dEQP-VK.renderpass.formats.r16g16_sfloat.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.clear.store.clear
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.clear.store.draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.load.store.clear
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.load.store.draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16_sfloat.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r16g16b16a16_unorm.clear.clear
 dEQP-VK.renderpass.formats.r16g16b16a16_unorm.clear.draw
 dEQP-VK.renderpass.formats.r16g16b16a16_unorm.clear.clear_draw
@@ -90737,6 +91961,42 @@ dEQP-VK.renderpass.formats.r16g16b16a16_unorm.load.clear_draw
 dEQP-VK.renderpass.formats.r16g16b16a16_unorm.dont_care.clear
 dEQP-VK.renderpass.formats.r16g16b16a16_unorm.dont_care.draw
 dEQP-VK.renderpass.formats.r16g16b16a16_unorm.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.clear.store.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.clear.store.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.load.store.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.load.store.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_unorm.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r16g16b16a16_snorm.clear.clear
 dEQP-VK.renderpass.formats.r16g16b16a16_snorm.clear.draw
 dEQP-VK.renderpass.formats.r16g16b16a16_snorm.clear.clear_draw
@@ -90746,6 +92006,42 @@ dEQP-VK.renderpass.formats.r16g16b16a16_snorm.load.clear_draw
 dEQP-VK.renderpass.formats.r16g16b16a16_snorm.dont_care.clear
 dEQP-VK.renderpass.formats.r16g16b16a16_snorm.dont_care.draw
 dEQP-VK.renderpass.formats.r16g16b16a16_snorm.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.clear.store.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.clear.store.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.load.store.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.load.store.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_snorm.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r16g16b16a16_uint.clear.clear
 dEQP-VK.renderpass.formats.r16g16b16a16_uint.clear.draw
 dEQP-VK.renderpass.formats.r16g16b16a16_uint.clear.clear_draw
@@ -90755,6 +92051,42 @@ dEQP-VK.renderpass.formats.r16g16b16a16_uint.load.clear_draw
 dEQP-VK.renderpass.formats.r16g16b16a16_uint.dont_care.clear
 dEQP-VK.renderpass.formats.r16g16b16a16_uint.dont_care.draw
 dEQP-VK.renderpass.formats.r16g16b16a16_uint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.load.store.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.load.store.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_uint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r16g16b16a16_sint.clear.clear
 dEQP-VK.renderpass.formats.r16g16b16a16_sint.clear.draw
 dEQP-VK.renderpass.formats.r16g16b16a16_sint.clear.clear_draw
@@ -90764,6 +92096,42 @@ dEQP-VK.renderpass.formats.r16g16b16a16_sint.load.clear_draw
 dEQP-VK.renderpass.formats.r16g16b16a16_sint.dont_care.clear
 dEQP-VK.renderpass.formats.r16g16b16a16_sint.dont_care.draw
 dEQP-VK.renderpass.formats.r16g16b16a16_sint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.load.store.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.load.store.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.clear.clear
 dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.clear.draw
 dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.clear.clear_draw
@@ -90773,6 +92141,42 @@ dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.load.clear_draw
 dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.dont_care.clear
 dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.dont_care.draw
 dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.clear.store.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.clear.store.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.load.store.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.load.store.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r16g16b16a16_sfloat.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r32_uint.clear.clear
 dEQP-VK.renderpass.formats.r32_uint.clear.draw
 dEQP-VK.renderpass.formats.r32_uint.clear.clear_draw
@@ -90782,6 +92186,42 @@ dEQP-VK.renderpass.formats.r32_uint.load.clear_draw
 dEQP-VK.renderpass.formats.r32_uint.dont_care.clear
 dEQP-VK.renderpass.formats.r32_uint.dont_care.draw
 dEQP-VK.renderpass.formats.r32_uint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32_uint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r32_uint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32_uint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r32_uint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32_uint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r32_uint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32_uint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r32_uint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32_uint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r32_uint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32_uint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32_uint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32_uint.input.load.store.clear
+dEQP-VK.renderpass.formats.r32_uint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32_uint.input.load.store.draw
+dEQP-VK.renderpass.formats.r32_uint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32_uint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r32_uint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32_uint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r32_uint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32_uint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r32_uint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32_uint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32_uint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32_uint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r32_uint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32_uint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r32_uint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32_uint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r32_uint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32_uint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r32_uint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32_uint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r32_uint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32_uint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32_uint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r32_sint.clear.clear
 dEQP-VK.renderpass.formats.r32_sint.clear.draw
 dEQP-VK.renderpass.formats.r32_sint.clear.clear_draw
@@ -90791,6 +92231,42 @@ dEQP-VK.renderpass.formats.r32_sint.load.clear_draw
 dEQP-VK.renderpass.formats.r32_sint.dont_care.clear
 dEQP-VK.renderpass.formats.r32_sint.dont_care.draw
 dEQP-VK.renderpass.formats.r32_sint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32_sint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r32_sint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32_sint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r32_sint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32_sint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r32_sint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32_sint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r32_sint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32_sint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r32_sint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32_sint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32_sint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32_sint.input.load.store.clear
+dEQP-VK.renderpass.formats.r32_sint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32_sint.input.load.store.draw
+dEQP-VK.renderpass.formats.r32_sint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32_sint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r32_sint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32_sint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r32_sint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32_sint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r32_sint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32_sint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32_sint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32_sint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r32_sint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32_sint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r32_sint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32_sint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r32_sint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32_sint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r32_sint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32_sint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r32_sint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32_sint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32_sint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r32_sfloat.clear.clear
 dEQP-VK.renderpass.formats.r32_sfloat.clear.draw
 dEQP-VK.renderpass.formats.r32_sfloat.clear.clear_draw
@@ -90800,6 +92276,42 @@ dEQP-VK.renderpass.formats.r32_sfloat.load.clear_draw
 dEQP-VK.renderpass.formats.r32_sfloat.dont_care.clear
 dEQP-VK.renderpass.formats.r32_sfloat.dont_care.draw
 dEQP-VK.renderpass.formats.r32_sfloat.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.clear.store.clear
+dEQP-VK.renderpass.formats.r32_sfloat.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32_sfloat.input.clear.store.draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r32_sfloat.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32_sfloat.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.load.store.clear
+dEQP-VK.renderpass.formats.r32_sfloat.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32_sfloat.input.load.store.draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r32_sfloat.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32_sfloat.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r32_sfloat.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32_sfloat.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r32_sfloat.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32_sfloat.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32_sfloat.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r32g32_uint.clear.clear
 dEQP-VK.renderpass.formats.r32g32_uint.clear.draw
 dEQP-VK.renderpass.formats.r32g32_uint.clear.clear_draw
@@ -90809,6 +92321,42 @@ dEQP-VK.renderpass.formats.r32g32_uint.load.clear_draw
 dEQP-VK.renderpass.formats.r32g32_uint.dont_care.clear
 dEQP-VK.renderpass.formats.r32g32_uint.dont_care.draw
 dEQP-VK.renderpass.formats.r32g32_uint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r32g32_uint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_uint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32_uint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_uint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.load.store.clear
+dEQP-VK.renderpass.formats.r32g32_uint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_uint.input.load.store.draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32_uint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_uint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r32g32_uint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_uint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32_uint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_uint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32_uint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r32g32_sint.clear.clear
 dEQP-VK.renderpass.formats.r32g32_sint.clear.draw
 dEQP-VK.renderpass.formats.r32g32_sint.clear.clear_draw
@@ -90818,6 +92366,42 @@ dEQP-VK.renderpass.formats.r32g32_sint.load.clear_draw
 dEQP-VK.renderpass.formats.r32g32_sint.dont_care.clear
 dEQP-VK.renderpass.formats.r32g32_sint.dont_care.draw
 dEQP-VK.renderpass.formats.r32g32_sint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r32g32_sint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_sint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32_sint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_sint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.load.store.clear
+dEQP-VK.renderpass.formats.r32g32_sint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_sint.input.load.store.draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32_sint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_sint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r32g32_sint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_sint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32_sint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_sint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32_sint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r32g32_sfloat.clear.clear
 dEQP-VK.renderpass.formats.r32g32_sfloat.clear.draw
 dEQP-VK.renderpass.formats.r32g32_sfloat.clear.clear_draw
@@ -90827,6 +92411,42 @@ dEQP-VK.renderpass.formats.r32g32_sfloat.load.clear_draw
 dEQP-VK.renderpass.formats.r32g32_sfloat.dont_care.clear
 dEQP-VK.renderpass.formats.r32g32_sfloat.dont_care.draw
 dEQP-VK.renderpass.formats.r32g32_sfloat.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.clear.store.clear
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.clear.store.draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.load.store.clear
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.load.store.draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32_sfloat.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r32g32b32a32_uint.clear.clear
 dEQP-VK.renderpass.formats.r32g32b32a32_uint.clear.draw
 dEQP-VK.renderpass.formats.r32g32b32a32_uint.clear.clear_draw
@@ -90836,6 +92456,42 @@ dEQP-VK.renderpass.formats.r32g32b32a32_uint.load.clear_draw
 dEQP-VK.renderpass.formats.r32g32b32a32_uint.dont_care.clear
 dEQP-VK.renderpass.formats.r32g32b32a32_uint.dont_care.draw
 dEQP-VK.renderpass.formats.r32g32b32a32_uint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.load.store.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.load.store.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_uint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r32g32b32a32_sint.clear.clear
 dEQP-VK.renderpass.formats.r32g32b32a32_sint.clear.draw
 dEQP-VK.renderpass.formats.r32g32b32a32_sint.clear.clear_draw
@@ -90845,6 +92501,42 @@ dEQP-VK.renderpass.formats.r32g32b32a32_sint.load.clear_draw
 dEQP-VK.renderpass.formats.r32g32b32a32_sint.dont_care.clear
 dEQP-VK.renderpass.formats.r32g32b32a32_sint.dont_care.draw
 dEQP-VK.renderpass.formats.r32g32b32a32_sint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.clear.store.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.clear.store.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.load.store.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.load.store.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.clear.clear
 dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.clear.draw
 dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.clear.clear_draw
@@ -90854,6 +92546,42 @@ dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.load.clear_draw
 dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.dont_care.clear
 dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.dont_care.draw
 dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.clear.store.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.clear.store.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.load.store.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.load.store.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.r32g32b32a32_sfloat.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.d16_unorm.clear.clear
 dEQP-VK.renderpass.formats.d16_unorm.clear.draw
 dEQP-VK.renderpass.formats.d16_unorm.clear.clear_draw
@@ -90863,6 +92591,42 @@ dEQP-VK.renderpass.formats.d16_unorm.load.clear_draw
 dEQP-VK.renderpass.formats.d16_unorm.dont_care.clear
 dEQP-VK.renderpass.formats.d16_unorm.dont_care.draw
 dEQP-VK.renderpass.formats.d16_unorm.dont_care.clear_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.clear.store.clear
+dEQP-VK.renderpass.formats.d16_unorm.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.d16_unorm.input.clear.store.draw
+dEQP-VK.renderpass.formats.d16_unorm.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.d16_unorm.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.d16_unorm.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.d16_unorm.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.load.store.clear
+dEQP-VK.renderpass.formats.d16_unorm.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.d16_unorm.input.load.store.draw
+dEQP-VK.renderpass.formats.d16_unorm.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.d16_unorm.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.d16_unorm.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.d16_unorm.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.d16_unorm.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.d16_unorm.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.d16_unorm.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.d16_unorm.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.d16_unorm.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.d16_unorm.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.d16_unorm.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.clear.clear
 dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.clear.draw
 dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.clear.clear_draw
@@ -90872,6 +92636,42 @@ dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.load.clear_draw
 dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.dont_care.clear
 dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.dont_care.draw
 dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.dont_care.clear_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.clear.store.clear
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.clear.store.draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.load.store.clear
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.load.store.draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.x8_d24_unorm_pack32.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.d32_sfloat.clear.clear
 dEQP-VK.renderpass.formats.d32_sfloat.clear.draw
 dEQP-VK.renderpass.formats.d32_sfloat.clear.clear_draw
@@ -90881,6 +92681,42 @@ dEQP-VK.renderpass.formats.d32_sfloat.load.clear_draw
 dEQP-VK.renderpass.formats.d32_sfloat.dont_care.clear
 dEQP-VK.renderpass.formats.d32_sfloat.dont_care.draw
 dEQP-VK.renderpass.formats.d32_sfloat.dont_care.clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.clear.store.clear
+dEQP-VK.renderpass.formats.d32_sfloat.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.d32_sfloat.input.clear.store.draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.d32_sfloat.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.d32_sfloat.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.load.store.clear
+dEQP-VK.renderpass.formats.d32_sfloat.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.d32_sfloat.input.load.store.draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.d32_sfloat.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.d32_sfloat.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.d32_sfloat.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.d32_sfloat.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.d32_sfloat.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.d32_sfloat.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.d24_unorm_s8_uint.clear.clear
 dEQP-VK.renderpass.formats.d24_unorm_s8_uint.clear.draw
 dEQP-VK.renderpass.formats.d24_unorm_s8_uint.clear.clear_draw
@@ -90890,6 +92726,42 @@ dEQP-VK.renderpass.formats.d24_unorm_s8_uint.load.clear_draw
 dEQP-VK.renderpass.formats.d24_unorm_s8_uint.dont_care.clear
 dEQP-VK.renderpass.formats.d24_unorm_s8_uint.dont_care.draw
 dEQP-VK.renderpass.formats.d24_unorm_s8_uint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.clear.store.clear
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.clear.store.draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.load.store.clear
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.load.store.draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.d24_unorm_s8_uint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.clear.clear
 dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.clear.draw
 dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.clear.clear_draw
@@ -90899,6 +92771,42 @@ dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.load.clear_draw
 dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.dont_care.clear
 dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.dont_care.draw
 dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.dont_care.clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.clear.store.clear
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.clear.store.self_dep_clear
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.clear.store.draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.clear.store.self_dep_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.clear.store.clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.clear.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.clear.dont_care.clear
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.clear.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.clear.dont_care.draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.clear.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.clear.dont_care.clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.clear.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.load.store.clear
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.load.store.self_dep_clear
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.load.store.draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.load.store.self_dep_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.load.store.clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.load.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.load.dont_care.clear
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.load.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.load.dont_care.draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.load.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.load.dont_care.clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.load.dont_care.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.dont_care.store.clear
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.dont_care.store.self_dep_clear
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.dont_care.store.draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.dont_care.store.self_dep_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.dont_care.store.clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.dont_care.store.self_dep_clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.dont_care.dont_care.clear
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.dont_care.dont_care.self_dep_clear
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.dont_care.dont_care.draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.dont_care.dont_care.self_dep_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.dont_care.dont_care.clear_draw
+dEQP-VK.renderpass.formats.d32_sfloat_s8_uint.input.dont_care.dont_care.self_dep_clear_draw
 dEQP-VK.renderpass.attachment.1.0
 dEQP-VK.renderpass.attachment.1.1
 dEQP-VK.renderpass.attachment.1.2
@@ -91999,6 +93907,206 @@ dEQP-VK.renderpass.attachment_allocation.grow_shrink.96
 dEQP-VK.renderpass.attachment_allocation.grow_shrink.97
 dEQP-VK.renderpass.attachment_allocation.grow_shrink.98
 dEQP-VK.renderpass.attachment_allocation.grow_shrink.99
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.0
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.1
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.2
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.3
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.4
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.5
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.6
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.7
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.8
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.9
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.10
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.11
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.12
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.13
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.14
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.15
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.16
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.17
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.18
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.19
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.20
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.21
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.22
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.23
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.24
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.25
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.26
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.27
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.28
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.29
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.30
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.31
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.32
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.33
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.34
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.35
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.36
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.37
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.38
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.39
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.40
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.41
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.42
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.43
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.44
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.45
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.46
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.47
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.48
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.49
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.50
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.51
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.52
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.53
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.54
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.55
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.56
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.57
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.58
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.59
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.60
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.61
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.62
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.63
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.64
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.65
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.66
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.67
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.68
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.69
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.70
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.71
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.72
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.73
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.74
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.75
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.76
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.77
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.78
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.79
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.80
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.81
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.82
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.83
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.84
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.85
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.86
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.87
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.88
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.89
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.90
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.91
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.92
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.93
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.94
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.95
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.96
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.97
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.98
+dEQP-VK.renderpass.attachment_allocation.input_output_chain.99
+dEQP-VK.renderpass.attachment_allocation.input_output.0
+dEQP-VK.renderpass.attachment_allocation.input_output.1
+dEQP-VK.renderpass.attachment_allocation.input_output.2
+dEQP-VK.renderpass.attachment_allocation.input_output.3
+dEQP-VK.renderpass.attachment_allocation.input_output.4
+dEQP-VK.renderpass.attachment_allocation.input_output.5
+dEQP-VK.renderpass.attachment_allocation.input_output.6
+dEQP-VK.renderpass.attachment_allocation.input_output.7
+dEQP-VK.renderpass.attachment_allocation.input_output.8
+dEQP-VK.renderpass.attachment_allocation.input_output.9
+dEQP-VK.renderpass.attachment_allocation.input_output.10
+dEQP-VK.renderpass.attachment_allocation.input_output.11
+dEQP-VK.renderpass.attachment_allocation.input_output.12
+dEQP-VK.renderpass.attachment_allocation.input_output.13
+dEQP-VK.renderpass.attachment_allocation.input_output.14
+dEQP-VK.renderpass.attachment_allocation.input_output.15
+dEQP-VK.renderpass.attachment_allocation.input_output.16
+dEQP-VK.renderpass.attachment_allocation.input_output.17
+dEQP-VK.renderpass.attachment_allocation.input_output.18
+dEQP-VK.renderpass.attachment_allocation.input_output.19
+dEQP-VK.renderpass.attachment_allocation.input_output.20
+dEQP-VK.renderpass.attachment_allocation.input_output.21
+dEQP-VK.renderpass.attachment_allocation.input_output.22
+dEQP-VK.renderpass.attachment_allocation.input_output.23
+dEQP-VK.renderpass.attachment_allocation.input_output.24
+dEQP-VK.renderpass.attachment_allocation.input_output.25
+dEQP-VK.renderpass.attachment_allocation.input_output.26
+dEQP-VK.renderpass.attachment_allocation.input_output.27
+dEQP-VK.renderpass.attachment_allocation.input_output.28
+dEQP-VK.renderpass.attachment_allocation.input_output.29
+dEQP-VK.renderpass.attachment_allocation.input_output.30
+dEQP-VK.renderpass.attachment_allocation.input_output.31
+dEQP-VK.renderpass.attachment_allocation.input_output.32
+dEQP-VK.renderpass.attachment_allocation.input_output.33
+dEQP-VK.renderpass.attachment_allocation.input_output.34
+dEQP-VK.renderpass.attachment_allocation.input_output.35
+dEQP-VK.renderpass.attachment_allocation.input_output.36
+dEQP-VK.renderpass.attachment_allocation.input_output.37
+dEQP-VK.renderpass.attachment_allocation.input_output.38
+dEQP-VK.renderpass.attachment_allocation.input_output.39
+dEQP-VK.renderpass.attachment_allocation.input_output.40
+dEQP-VK.renderpass.attachment_allocation.input_output.41
+dEQP-VK.renderpass.attachment_allocation.input_output.42
+dEQP-VK.renderpass.attachment_allocation.input_output.43
+dEQP-VK.renderpass.attachment_allocation.input_output.44
+dEQP-VK.renderpass.attachment_allocation.input_output.45
+dEQP-VK.renderpass.attachment_allocation.input_output.46
+dEQP-VK.renderpass.attachment_allocation.input_output.47
+dEQP-VK.renderpass.attachment_allocation.input_output.48
+dEQP-VK.renderpass.attachment_allocation.input_output.49
+dEQP-VK.renderpass.attachment_allocation.input_output.50
+dEQP-VK.renderpass.attachment_allocation.input_output.51
+dEQP-VK.renderpass.attachment_allocation.input_output.52
+dEQP-VK.renderpass.attachment_allocation.input_output.53
+dEQP-VK.renderpass.attachment_allocation.input_output.54
+dEQP-VK.renderpass.attachment_allocation.input_output.55
+dEQP-VK.renderpass.attachment_allocation.input_output.56
+dEQP-VK.renderpass.attachment_allocation.input_output.57
+dEQP-VK.renderpass.attachment_allocation.input_output.58
+dEQP-VK.renderpass.attachment_allocation.input_output.59
+dEQP-VK.renderpass.attachment_allocation.input_output.60
+dEQP-VK.renderpass.attachment_allocation.input_output.61
+dEQP-VK.renderpass.attachment_allocation.input_output.62
+dEQP-VK.renderpass.attachment_allocation.input_output.63
+dEQP-VK.renderpass.attachment_allocation.input_output.64
+dEQP-VK.renderpass.attachment_allocation.input_output.65
+dEQP-VK.renderpass.attachment_allocation.input_output.66
+dEQP-VK.renderpass.attachment_allocation.input_output.67
+dEQP-VK.renderpass.attachment_allocation.input_output.68
+dEQP-VK.renderpass.attachment_allocation.input_output.69
+dEQP-VK.renderpass.attachment_allocation.input_output.70
+dEQP-VK.renderpass.attachment_allocation.input_output.71
+dEQP-VK.renderpass.attachment_allocation.input_output.72
+dEQP-VK.renderpass.attachment_allocation.input_output.73
+dEQP-VK.renderpass.attachment_allocation.input_output.74
+dEQP-VK.renderpass.attachment_allocation.input_output.75
+dEQP-VK.renderpass.attachment_allocation.input_output.76
+dEQP-VK.renderpass.attachment_allocation.input_output.77
+dEQP-VK.renderpass.attachment_allocation.input_output.78
+dEQP-VK.renderpass.attachment_allocation.input_output.79
+dEQP-VK.renderpass.attachment_allocation.input_output.80
+dEQP-VK.renderpass.attachment_allocation.input_output.81
+dEQP-VK.renderpass.attachment_allocation.input_output.82
+dEQP-VK.renderpass.attachment_allocation.input_output.83
+dEQP-VK.renderpass.attachment_allocation.input_output.84
+dEQP-VK.renderpass.attachment_allocation.input_output.85
+dEQP-VK.renderpass.attachment_allocation.input_output.86
+dEQP-VK.renderpass.attachment_allocation.input_output.87
+dEQP-VK.renderpass.attachment_allocation.input_output.88
+dEQP-VK.renderpass.attachment_allocation.input_output.89
+dEQP-VK.renderpass.attachment_allocation.input_output.90
+dEQP-VK.renderpass.attachment_allocation.input_output.91
+dEQP-VK.renderpass.attachment_allocation.input_output.92
+dEQP-VK.renderpass.attachment_allocation.input_output.93
+dEQP-VK.renderpass.attachment_allocation.input_output.94
+dEQP-VK.renderpass.attachment_allocation.input_output.95
+dEQP-VK.renderpass.attachment_allocation.input_output.96
+dEQP-VK.renderpass.attachment_allocation.input_output.97
+dEQP-VK.renderpass.attachment_allocation.input_output.98
+dEQP-VK.renderpass.attachment_allocation.input_output.99
 dEQP-VK.ubo.2_level_array.std140.float_vertex
 dEQP-VK.ubo.2_level_array.std140.float_fragment
 dEQP-VK.ubo.2_level_array.std140.float_both