From: Mika Isojärvi Date: Wed, 17 Aug 2016 20:23:36 +0000 (-0700) Subject: Extend renderpass tests to use input attachments X-Git-Tag: upstream/0.1.0~667^2~10 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=58a80a6102cf592f064b8094c59812081ee5d323;p=platform%2Fupstream%2FVK-GL-CTS.git Extend renderpass tests to use input attachments - 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 --- diff --git a/android/cts/master/vk-master.txt b/android/cts/master/vk-master.txt index 45d49d4..2645ac4 100644 --- a/android/cts/master/vk-master.txt +++ b/android/cts/master/vk-master.txt @@ -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 diff --git a/external/vulkancts/modules/vulkan/vktRenderPassTests.cpp b/external/vulkancts/modules/vulkan/vktRenderPassTests.cpp index efb9d60..4b3720d 100644 --- a/external/vulkancts/modules/vulkan/vktRenderPassTests.cpp +++ b/external/vulkancts/modules/vulkan/vktRenderPassTests.cpp @@ -24,6 +24,7 @@ #include "vktRenderPassTests.hpp" #include "vktTestCaseUtil.hpp" +#include "vktTestGroupUtil.hpp" #include "vkDefs.hpp" #include "vkDeviceUtil.hpp" @@ -37,54 +38,120 @@ #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 +#include +#include +#include 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 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& colorAttachments, const vector& resolveAttachments, AttachmentReference depthStencilAttachment, - const vector& preserveAttachments) + const vector& preserveAttachments) : m_pipelineBindPoint (pipelineBindPoint) , m_flags (flags) , m_inputAttachments (inputAttachments) @@ -450,7 +517,7 @@ public: const vector& getColorAttachments (void) const { return m_colorAttachments; } const vector& getResolveAttachments (void) const { return m_resolveAttachments; } const AttachmentReference& getDepthStencilAttachment (void) const { return m_depthStencilAttachment; } - const vector& getPreserveAttachments (void) const { return m_preserveAttachments; } + const vector& getPreserveAttachments (void) const { return m_preserveAttachments; } private: VkPipelineBindPoint m_pipelineBindPoint; @@ -461,7 +528,7 @@ private: vector m_resolveAttachments; AttachmentReference m_depthStencilAttachment; - vector m_preserveAttachments; + vector 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& inputAttachments = subpass.getInputAttachments(); const vector& colorAttachments = subpass.getColorAttachments(); const vector& resolveAttachments = subpass.getResolveAttachments(); - const vector& preserveAttachments = subpass.getPreserveAttachments(); + const vector& 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::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::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 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& getInputAttachmentViews (void) const + { + return m_inputAttachmentViews; + } + ~AttachmentResources (void) { } @@ -1283,6 +1364,10 @@ private: const UniquePtr m_imageMemory; const Unique m_attachmentView; + Move m_depthInputAttachmentView; + Move m_stencilInputAttachmentView; + pair m_inputAttachmentViews; + Move m_buffer; VkDeviceSize m_bufferSize; de::MovePtr 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 m_vertices; + vector 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, - const vector& colorClears, - const Maybe& depthStencilClear) + const Maybe& renderQuad, + const vector& colorClears, + const Maybe& 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& getRenderQuad (void) const { return m_renderQuad; } - const vector& getColorClears (void) const { return m_colorClears; } - const Maybe& getDepthStencilClear (void) const { return m_depthStencilClear; } + const Maybe& getRenderQuad (void) const { return m_renderQuad; } + const vector& getColorClears (void) const { return m_colorClears; } + const Maybe& 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 getDepthStencilAttachmentLayout (void) const { return m_depthStencilAttachment ? tcu::just(m_depthStencilAttachment->getImageLayout()) : tcu::nothing(); } + Maybe getDepthStencilAttachmentIndex (void) const { return m_depthStencilAttachment ? tcu::just(m_depthStencilAttachment->getAttachment()) : tcu::nothing(); }; + const Maybe& 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 getDepthStencilAttachmentLayout (void) const { return m_depthStencilAttachment ? tcu::just(m_depthStencilAttachment->getImageLayout()) : tcu::nothing(); } - Maybe getDepthStencilAttachmentIndex (void) const { return m_depthStencilAttachment ? tcu::just(m_depthStencilAttachment->getAttachment()) : tcu::nothing(); }; - const Maybe& 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 m_renderQuad; - vector m_colorClears; - Maybe m_depthStencilClear; + Maybe m_renderQuad; + vector m_colorClears; + Maybe m_depthStencilClear; - vector m_colorAttachments; - vector m_colorAttachmentInfo; + vector m_colorAttachments; + vector m_colorAttachmentInfo; - Maybe m_depthStencilAttachment; - Maybe m_depthStencilAttachmentInfo; + Maybe m_depthStencilAttachment; + Maybe m_depthStencilAttachmentInfo; + + vector m_inputAttachments; }; Move createSubpassPipeline (const DeviceInterface& vk, @@ -1510,7 +1602,7 @@ Move 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 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 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 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 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 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 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& attachmentImages, + const vector >& attachmentViews, + const SubpassRenderInfo& renderInfo, + const vector& attachmentInfos) : m_renderInfo (renderInfo) { - const deUint32 subpassIndex = renderInfo.getSubpassIndex(); + const deUint32 subpassIndex = renderInfo.getSubpassIndex(); + vector 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 writes (bindings.size()); + vector 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 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 m_commandBuffer; - Move m_pipeline; - Move m_pipelineLayout; - - Move m_vertexShaderModule; - - Move m_fragmentShaderModule; - - Move m_vertexBuffer; - de::MovePtr m_vertexBufferMemory; + const SubpassRenderInfo m_renderInfo; + Move m_commandBuffer; + Move m_pipeline; + Move m_descriptorSetLayout; + Move m_pipelineLayout; + + Move m_vertexShaderModule; + Move m_fragmentShaderModule; + + Move m_descriptorPool; + Move m_descriptorSet; + Move m_vertexBuffer; + de::MovePtr m_vertexBufferMemory; + vector 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 >& subpassRenderers, - const UVec2& renderPos, - const UVec2& renderSize, - const vector >& renderPassClearValues, - TestConfig::RenderTypes render) +void pushRenderPassCommands (const DeviceInterface& vk, + VkCommandBuffer commandBuffer, + VkRenderPass renderPass, + VkFramebuffer framebuffer, + const vector >& subpassRenderers, + const UVec2& renderPos, + const UVec2& renderSize, + const vector >& renderPassClearValues, + TestConfig::RenderTypes render) { const float clearNan = tcu::Float32::nan().asFloat(); vector 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& x = nothing(), + const Maybe& y = nothing(), + const Maybe& z = nothing(), + const Maybe& w = nothing()); + + void setUndefined (size_t ndx); + void setValue (size_t ndx, bool value); + Maybe getValue (size_t ndx) const; + +private: + deUint16 m_status; +}; + +PixelValue::PixelValue (const Maybe& x, + const Maybe& y, + const Maybe& z, + const Maybe& w) + : m_status (0) { - const tcu::TextureFormat& format = access.getFormat(); + const Maybe 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 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(); +} + +void clearReferenceValues (vector& 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& 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& referenceAttachments, +void renderReferenceValues (vector >& referenceAttachments, const RenderPass& renderPassInfo, const UVec2& targetSize, const vector >& imageClearValues, @@ -2290,30 +2823,14 @@ void renderReferenceImages (vector& 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& 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& referenceAttachments, if (!attachmentUsed[attachmentIndex]) { - const Attachment& attachment = renderPassInfo.getAttachments()[attachmentIndex]; - tcu::TextureLevel& reference = referenceAttachments[attachmentIndex]; + const Attachment& attachment = renderPassInfo.getAttachments()[attachmentIndex]; + vector& 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& 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& 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& 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& 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& 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 > 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 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(); -} - -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& 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 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(); + 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& 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 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(); + } + + 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& 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& 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<& status) +void renderReferenceImagesFromValues (vector& referenceImages, + const vector >& 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& 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& 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& 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(); - 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& status, - const VkClearColorValue& color) +bool verifyColorAttachment (const vector& 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 maybeValue = referenceValue.getValue(compNdx); -void checkDepthClear (const ConstPixelBufferAccess& result, - const UVec2& offset, - const UVec2& size, - vector& 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& 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& secondaryResult, - const RenderPass& renderPassInfo, - const Maybe& renderPassClearValue, - const Maybe& imageClearValue, - const vector& subpasses, - const vector& subpassRenderInfo, - const PixelBufferAccess& errorImage, - deUint32 attachmentIndex, - const UVec2& renderPos, - const UVec2& renderSize) +bool verifyDepthAttachment (const vector& 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 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 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 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 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& 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 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 > referenceValues; vector 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(), 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& 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 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& attachmentIsLazy, - const vector >& imageClearValues, - const vector >& renderPassClearValues, - const vector& subpassRenderInfo) +void logTestCaseInfo (TestLog& log, + const TestConfig& config, + const vector& attachmentIsLazy, + const vector >& imageClearValues, + const vector >& renderPassClearValues, + const vector& 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& renderInfos, de::Random& rng, const RenderPass& renderPass, const TestConfig& config) { const TestConfig::CommandBufferTypes commandBuffer = config.commandBufferTypes; @@ -3750,11 +4146,11 @@ void initializeSubpassRenderInfo (vector& 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& 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 > attachmentResources; vector > subpassRenderers; + vector attachmentImages; vector attachmentViews; + vector > 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(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 framebuffer (createFramebuffer(vk, device, *renderPass, targetSize, attachmentViews)); for (size_t subpassNdx = 0; subpassNdx < renderPassInfo.getSubpasses().size(); subpassNdx++) - subpassRenderers.push_back(de::SharedPtr(new SubpassRenderer(context, vk, device, allocator, *renderPass, *framebuffer, *commandBufferPool, queueIndex, subpassRenderInfo[subpassNdx]))); + subpassRenderers.push_back(de::SharedPtr(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 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 createAttachmentTestCaseGroup (tcu::TestContext& UVec2(60, 47) }; - de::Random rng (1433774382u); - de::MovePtr 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 createAttachmentTestCaseGroup (tcu::TestContext& if (useDepthStencil) { - const VkSampleCountFlagBits sampleCount = VK_SAMPLE_COUNT_1_BIT; - const VkFormat format = rng.choose(DE_ARRAY_BEGIN(s_coreDepthStencilFormats), DE_ARRAY_END(s_coreDepthStencilFormats)); - const VkAttachmentLoadOp loadOp = rng.choose(DE_ARRAY_BEGIN(loadOps), DE_ARRAY_END(loadOps)); - const VkAttachmentStoreOp storeOp = rng.choose(DE_ARRAY_BEGIN(storeOps), DE_ARRAY_END(storeOps)); + const VkSampleCountFlagBits sampleCount = VK_SAMPLE_COUNT_1_BIT; + const VkFormat format = rng.choose(DE_ARRAY_BEGIN(s_coreDepthStencilFormats), DE_ARRAY_END(s_coreDepthStencilFormats)); + const VkAttachmentLoadOp loadOp = rng.choose(DE_ARRAY_BEGIN(loadOps), DE_ARRAY_END(loadOps)); + const VkAttachmentStoreOp storeOp = rng.choose(DE_ARRAY_BEGIN(storeOps), DE_ARRAY_END(storeOps)); - const VkImageLayout initialLayout = rng.choose(DE_ARRAY_BEGIN(initialAndFinalDepthStencilLayouts), DE_ARRAY_END(initialAndFinalDepthStencilLayouts)); - const VkImageLayout finalizeLayout = rng.choose(DE_ARRAY_BEGIN(initialAndFinalDepthStencilLayouts), DE_ARRAY_END(initialAndFinalDepthStencilLayouts)); + const VkImageLayout initialLayout = rng.choose(DE_ARRAY_BEGIN(initialAndFinalDepthStencilLayouts), DE_ARRAY_END(initialAndFinalDepthStencilLayouts)); + const VkImageLayout finalizeLayout = rng.choose(DE_ARRAY_BEGIN(initialAndFinalDepthStencilLayouts), DE_ARRAY_END(initialAndFinalDepthStencilLayouts)); - const VkAttachmentLoadOp stencilLoadOp = rng.choose(DE_ARRAY_BEGIN(loadOps), DE_ARRAY_END(loadOps)); - const VkAttachmentStoreOp stencilStoreOp = rng.choose(DE_ARRAY_BEGIN(storeOps), DE_ARRAY_END(storeOps)); + const VkAttachmentLoadOp stencilLoadOp = rng.choose(DE_ARRAY_BEGIN(loadOps), DE_ARRAY_END(loadOps)); + const VkAttachmentStoreOp stencilStoreOp = rng.choose(DE_ARRAY_BEGIN(storeOps), DE_ARRAY_END(storeOps)); depthStencilLayout = rng.choose(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 createAttachmentTestCaseGroup (tcu::TestContext& const TestConfig::RenderTypes render = rng.choose(DE_ARRAY_BEGIN(renderCommands), DE_ARRAY_END(renderCommands)); const TestConfig::CommandBufferTypes commandBuffer = rng.choose(DE_ARRAY_BEGIN(commandBuffers), DE_ARRAY_END(commandBuffers)); const TestConfig::ImageMemory imageMemory = rng.choose(DE_ARRAY_BEGIN(imageMemories), DE_ARRAY_END(imageMemories)); - const vector subpasses (1, Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS, 0u, vector(), colorAttachmentReferences, vector(), AttachmentReference((useDepthStencil ? (deUint32)(attachments.size() - 1) : VK_ATTACHMENT_UNUSED), depthStencilLayout), vector())); + const vector subpasses (1, Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS, 0u, vector(), colorAttachmentReferences, vector(), AttachmentReference((useDepthStencil ? (deUint32)(attachments.size() - 1) : VK_ATTACHMENT_UNUSED), depthStencilLayout), vector())); const vector deps; const string testCaseName = de::toString(attachmentCountNdx * testCaseCount + testCaseNdx); @@ -4127,11 +4534,21 @@ de::MovePtr createAttachmentTestCaseGroup (tcu::TestContext& group->addChild(attachmentCountGroup.release()); } +} + +template +T chooseRandom (de::Random& rng, const set& values) +{ + size_t ndx = ((size_t)rng.getUint32()) % values.size(); + typename set::const_iterator iter = values.begin(); + + for (; ndx > 0; ndx--) + iter++; - return group; + return *iter; } -de::MovePtr createAttachmentAllocationTestGroup (tcu::TestContext& testCtx) +void addAttachmentAllocationTests (tcu::TestCaseGroup* group) { const deUint32 attachmentCounts[] = { 4, 8 }; const VkAttachmentLoadOp loadOps[] = @@ -4156,6 +4573,16 @@ de::MovePtr 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 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 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 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 createAttachmentAllocationTestGroup (tcu::TestCo UVec2(60, 47) }; - de::MovePtr 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 createAttachmentAllocationTestGroup (tcu::TestCo for (size_t testCaseNdx = 0; testCaseNdx < testCaseCount; testCaseNdx++) { - const deUint32 attachmentCount = rng.choose(DE_ARRAY_BEGIN(attachmentCounts), DE_ARRAY_END(attachmentCounts)); - vector attachments; - vector 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(DE_ARRAY_BEGIN(s_coreColorFormats), DE_ARRAY_END(s_coreColorFormats)); - const VkAttachmentLoadOp loadOp = rng.choose(DE_ARRAY_BEGIN(loadOps), DE_ARRAY_END(loadOps)); - const VkAttachmentStoreOp storeOp = rng.choose(DE_ARRAY_BEGIN(storeOps), DE_ARRAY_END(storeOps)); + const deUint32 attachmentCount = 4u + rng.getUint32() % 31u; + const deUint32 subpassCount = 4u + rng.getUint32() % 31u; + vector attachments; - const VkImageLayout initialLayout = rng.choose(DE_ARRAY_BEGIN(initialAndFinalColorLayouts), DE_ARRAY_END(initialAndFinalColorLayouts)); - const VkImageLayout finalizeLayout = rng.choose(DE_ARRAY_BEGIN(initialAndFinalColorLayouts), DE_ARRAY_END(initialAndFinalColorLayouts)); - - const VkAttachmentLoadOp stencilLoadOp = rng.choose(DE_ARRAY_BEGIN(loadOps), DE_ARRAY_END(loadOps)); - const VkAttachmentStoreOp stencilStoreOp = rng.choose(DE_ARRAY_BEGIN(storeOps), DE_ARRAY_END(storeOps)); + set definedAttachments; - attachments.push_back(Attachment(format, sampleCount, loadOp, storeOp, stencilLoadOp, stencilStoreOp, initialLayout, finalizeLayout)); - } + vector subpasses; + set colorAttachments; + set depthStencilAttachments; - if (allocationType == ALLOCATIONTYPE_GROW) - { - for (size_t subpassNdx = 0; subpassNdx < attachmentCount; subpassNdx++) + for (deUint32 attachmentIndex = 0; attachmentIndex < attachmentCount; attachmentIndex++) { - vector 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(DE_ARRAY_BEGIN(loadOps), DE_ARRAY_END(loadOps)); + const VkAttachmentStoreOp storeOp = rng.choose(DE_ARRAY_BEGIN(storeOps), DE_ARRAY_END(storeOps)); + + const VkImageLayout initialLayout = isDepthStencilAttachment + ? rng.choose(DE_ARRAY_BEGIN(initialAndFinalDepthStencilLayouts), DE_ARRAY_END(initialAndFinalDepthStencilLayouts)) + : rng.choose(DE_ARRAY_BEGIN(initialAndFinalColorLayouts), DE_ARRAY_END(initialAndFinalColorLayouts)); + const VkImageLayout finalizeLayout = isDepthStencilAttachment + ? rng.choose(DE_ARRAY_BEGIN(initialAndFinalDepthStencilLayouts), DE_ARRAY_END(initialAndFinalDepthStencilLayouts)) + : rng.choose(DE_ARRAY_BEGIN(initialAndFinalColorLayouts), DE_ARRAY_END(initialAndFinalColorLayouts)); + + const VkAttachmentLoadOp stencilLoadOp = rng.choose(DE_ARRAY_BEGIN(loadOps), DE_ARRAY_END(loadOps)); + const VkAttachmentStoreOp stencilStoreOp = rng.choose(DE_ARRAY_BEGIN(storeOps), DE_ARRAY_END(storeOps)); + + if (isDepthStencilAttachment) { - const VkImageLayout subpassLayout = rng.choose(DE_ARRAY_BEGIN(subpassLayouts), DE_ARRAY_END(subpassLayouts)); + const VkFormat format = rng.choose(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(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(), colorAttachmentReferences, vector(), AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL), vector())); + 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 > lastUseOfAttachment (attachments.size(), nothing()); + vector deps; + + for (deUint32 subpassIndex = 0; subpassIndex < subpassCount; subpassIndex++) { - vector 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(4, definedAttachments.size()) + 1); + const bool useDepthStencilAttachment = !depthStencilAttachments.empty() && (colorAttachmentCount == 0 || rng.getBool()); + std::vector subpassColorAttachments (colorAttachmentCount); + std::vector subpassInputAttachments (inputAttachmentCount); + Maybe depthStencilAttachment (useDepthStencilAttachment + ? just(chooseRandom(rng, depthStencilAttachments)) + : nothing()); + std::vector 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(DE_ARRAY_BEGIN(subpassLayouts), DE_ARRAY_END(subpassLayouts)); - - colorAttachmentReferences.push_back(AttachmentReference((deUint32)attachmentNdx, subpassLayout)); + std::vector inputAttachmentReferences; + std::vector 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 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(), + depthStencilAttachmentReference, + preserveAttachments)); } - - subpasses.push_back(Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS, 0u, vector(), colorAttachmentReferences, vector(), AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL), vector())); } - } - else if (allocationType == ALLOCATIONTYPE_ROLL) - { - for (size_t subpassNdx = 0; subpassNdx < attachmentCount / 2; subpassNdx++) { - vector colorAttachmentReferences; + const TestConfig::RenderTypes render = rng.choose(DE_ARRAY_BEGIN(renderCommands), DE_ARRAY_END(renderCommands)); + const TestConfig::CommandBufferTypes commandBuffer = rng.choose(DE_ARRAY_BEGIN(commandBuffers), DE_ARRAY_END(commandBuffers)); + const TestConfig::ImageMemory imageMemory = rng.choose(DE_ARRAY_BEGIN(imageMemories), DE_ARRAY_END(imageMemories)); - for (size_t attachmentNdx = 0; attachmentNdx < attachmentCount / 2; attachmentNdx++) - { - const VkImageLayout subpassLayout = rng.choose(DE_ARRAY_BEGIN(subpassLayouts), DE_ARRAY_END(subpassLayouts)); + const string testCaseName = de::toString(testCaseNdx); + const UVec2 targetSize = rng.choose(DE_ARRAY_BEGIN(targetSizes), DE_ARRAY_END(targetSizes)); + const UVec2 renderPos = rng.choose(DE_ARRAY_BEGIN(renderPositions), DE_ARRAY_END(renderPositions)); + const UVec2 renderSize = rng.choose(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(), colorAttachmentReferences, vector(), AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL), vector())); + addFunctionCaseWithPrograms(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(DE_ARRAY_BEGIN(attachmentCounts), DE_ARRAY_END(attachmentCounts)); + vector attachments; + vector subpasses; + + for (size_t attachmentNdx = 0; attachmentNdx < attachmentCount; attachmentNdx++) { - vector colorAttachmentReferences; + const VkSampleCountFlagBits sampleCount = VK_SAMPLE_COUNT_1_BIT; + const VkFormat format = rng.choose(DE_ARRAY_BEGIN(s_coreColorFormats), DE_ARRAY_END(s_coreColorFormats)); + const VkAttachmentLoadOp loadOp = rng.choose(DE_ARRAY_BEGIN(loadOps), DE_ARRAY_END(loadOps)); + const VkAttachmentStoreOp storeOp = rng.choose(DE_ARRAY_BEGIN(storeOps), DE_ARRAY_END(storeOps)); - for (size_t attachmentNdx = 0; attachmentNdx < subpassNdx + 1; attachmentNdx++) - { - const VkImageLayout subpassLayout = rng.choose(DE_ARRAY_BEGIN(subpassLayouts), DE_ARRAY_END(subpassLayouts)); + const VkImageLayout initialLayout = rng.choose(DE_ARRAY_BEGIN(initialAndFinalColorLayouts), DE_ARRAY_END(initialAndFinalColorLayouts)); + const VkImageLayout finalizeLayout = rng.choose(DE_ARRAY_BEGIN(initialAndFinalColorLayouts), DE_ARRAY_END(initialAndFinalColorLayouts)); - colorAttachmentReferences.push_back(AttachmentReference((deUint32)attachmentNdx, subpassLayout)); - } + const VkAttachmentLoadOp stencilLoadOp = rng.choose(DE_ARRAY_BEGIN(loadOps), DE_ARRAY_END(loadOps)); + const VkAttachmentStoreOp stencilStoreOp = rng.choose(DE_ARRAY_BEGIN(storeOps), DE_ARRAY_END(storeOps)); - subpasses.push_back(Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS, 0u, vector(), colorAttachmentReferences, vector(), AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL), vector())); + 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 colorAttachmentReferences; + for (size_t subpassNdx = 0; subpassNdx < attachmentCount; subpassNdx++) + { + vector colorAttachmentReferences; + + for (size_t attachmentNdx = 0; attachmentNdx < subpassNdx + 1; attachmentNdx++) + { + const VkImageLayout subpassLayout = rng.choose(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(), + colorAttachmentReferences, + vector(), + AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL), + vector())); + } + } + else if (allocationType == ALLOCATIONTYPE_SHRINK) + { + for (size_t subpassNdx = 0; subpassNdx < attachmentCount; subpassNdx++) { - const VkImageLayout subpassLayout = rng.choose(DE_ARRAY_BEGIN(subpassLayouts), DE_ARRAY_END(subpassLayouts)); + vector colorAttachmentReferences; + + for (size_t attachmentNdx = 0; attachmentNdx < (attachmentCount - subpassNdx); attachmentNdx++) + { + const VkImageLayout subpassLayout = rng.choose(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(), + colorAttachmentReferences, + vector(), + AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL), + vector())); } + } + else if (allocationType == ALLOCATIONTYPE_ROLL) + { + for (size_t subpassNdx = 0; subpassNdx < attachmentCount / 2; subpassNdx++) + { + vector colorAttachmentReferences; - subpasses.push_back(Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS, 0u, vector(), colorAttachmentReferences, vector(), AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL), vector())); + for (size_t attachmentNdx = 0; attachmentNdx < attachmentCount / 2; attachmentNdx++) + { + const VkImageLayout subpassLayout = rng.choose(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(), + colorAttachmentReferences, + vector(), + AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL), + vector())); + } } - } - else - DE_FATAL("Unknown allocation type"); + else if (allocationType == ALLOCATIONTYPE_GROW_SHRINK) + { + for (size_t subpassNdx = 0; subpassNdx < attachmentCount; subpassNdx++) + { + vector colorAttachmentReferences; - { - const TestConfig::RenderTypes render = rng.choose(DE_ARRAY_BEGIN(renderCommands), DE_ARRAY_END(renderCommands)); - const TestConfig::CommandBufferTypes commandBuffer = rng.choose(DE_ARRAY_BEGIN(commandBuffers), DE_ARRAY_END(commandBuffers)); - const TestConfig::ImageMemory imageMemory = rng.choose(DE_ARRAY_BEGIN(imageMemories), DE_ARRAY_END(imageMemories)); + for (size_t attachmentNdx = 0; attachmentNdx < subpassNdx + 1; attachmentNdx++) + { + const VkImageLayout subpassLayout = rng.choose(DE_ARRAY_BEGIN(subpassLayouts), DE_ARRAY_END(subpassLayouts)); - const string testCaseName = de::toString(testCaseNdx); - const UVec2 targetSize = rng.choose(DE_ARRAY_BEGIN(targetSizes), DE_ARRAY_END(targetSizes)); - const UVec2 renderPos = rng.choose(DE_ARRAY_BEGIN(renderPositions), DE_ARRAY_END(renderPositions)); - const UVec2 renderSize = rng.choose(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(), + colorAttachmentReferences, + vector(), + AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL), + vector())); + } - vector deps; + for (size_t subpassNdx = 0; subpassNdx < attachmentCount; subpassNdx++) + { + vector colorAttachmentReferences; + + for (size_t attachmentNdx = 0; attachmentNdx < (attachmentCount - subpassNdx); attachmentNdx++) + { + const VkImageLayout subpassLayout = rng.choose(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(), + colorAttachmentReferences, + vector(), + AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL), + vector())); + } + } + 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(), + vector(1, AttachmentReference(0, rng.choose(DE_ARRAY_BEGIN(subpassLayouts), DE_ARRAY_END(subpassLayouts)))), + vector(), + AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL), + vector())); + + for (size_t subpassNdx = 1; subpassNdx < attachmentCount; subpassNdx++) + { + subpasses.push_back(Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS, 0u, + vector(1, AttachmentReference((deUint32)(subpassNdx - 1), VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL)), + vector(1, AttachmentReference((deUint32)(subpassNdx), rng.choose(DE_ARRAY_BEGIN(subpassLayouts), DE_ARRAY_END(subpassLayouts)))), + vector(), + AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL), + vector())); + } } + else + DE_FATAL("Unknown allocation type"); - const RenderPass renderPass (attachments, subpasses, deps); + { + const TestConfig::RenderTypes render = rng.choose(DE_ARRAY_BEGIN(renderCommands), DE_ARRAY_END(renderCommands)); + const TestConfig::CommandBufferTypes commandBuffer = rng.choose(DE_ARRAY_BEGIN(commandBuffers), DE_ARRAY_END(commandBuffers)); + const TestConfig::ImageMemory imageMemory = rng.choose(DE_ARRAY_BEGIN(imageMemories), DE_ARRAY_END(imageMemories)); + + const string testCaseName = de::toString(testCaseNdx); + const UVec2 targetSize = rng.choose(DE_ARRAY_BEGIN(targetSizes), DE_ARRAY_END(targetSizes)); + const UVec2 renderPos = rng.choose(DE_ARRAY_BEGIN(renderPositions), DE_ARRAY_END(renderPositions)); + const UVec2 renderSize = rng.choose(DE_ARRAY_BEGIN(renderSizes), DE_ARRAY_END(renderSizes)); + + vector 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(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(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 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 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 createSimpleTestGroup (tcu::TestContext& testCtx vector(1, AttachmentReference(0, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL)), vector(), AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL), - vector())), + vector())), vector()); - addFunctionCaseWithPrograms(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(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 createSimpleTestGroup (tcu::TestContext& testCtx vector(), vector(), AttachmentReference(0, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL), - vector())), + vector())), vector()); - addFunctionCaseWithPrograms(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(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 createSimpleTestGroup (tcu::TestContext& testCtx vector(), vector(), AttachmentReference(0, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL), - vector())), + vector())), vector()); - addFunctionCaseWithPrograms(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(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 createSimpleTestGroup (tcu::TestContext& testCtx vector(), vector(), AttachmentReference(0, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL), - vector())), + vector())), vector()); - addFunctionCaseWithPrograms(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(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 createSimpleTestGroup (tcu::TestContext& testCtx vector(1, AttachmentReference(0, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL)), vector(), AttachmentReference(1, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL), - vector())), + vector())), vector()); - addFunctionCaseWithPrograms(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(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 createSimpleTestGroup (tcu::TestContext& testCtx vector(1, AttachmentReference(0, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL)), vector(), AttachmentReference(1, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL), - vector())), + vector())), vector()); - addFunctionCaseWithPrograms(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(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 createSimpleTestGroup (tcu::TestContext& testCtx vector(1, AttachmentReference(0, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL)), vector(), AttachmentReference(1, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL), - vector())), + vector())), vector()); - addFunctionCaseWithPrograms(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(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 createFormatTestGroup(tcu::TestContext& testCtx) +void addFormatTests (tcu::TestCaseGroup* group) { - de::MovePtr 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 createFormatTestGroup(tcu::TestContext& testCtx) vector(1, AttachmentReference(0, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL)), vector(), AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL), - vector())), + vector())), vector()); addFunctionCaseWithPrograms(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 createFormatTestGroup(tcu::TestContext& testCtx) formatGroup->addChild(loadOpGroup.release()); } + { + de::MovePtr 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 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 storeOpGroup (new tcu::TestCaseGroup(testCtx, storeOps[storeOpNdx].str, storeOps[storeOpNdx].str)); + + for (size_t renderTypeNdx = 0; renderTypeNdx < DE_LENGTH_OF_ARRAY(renderTypes); renderTypeNdx++) + { + { + vector attachments; + vector subpasses; + vector 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(), + vector(1, AttachmentReference(0, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL)), + vector(), + AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL), + vector())); + subpasses.push_back(Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS, + 0u, + vector(1, AttachmentReference(0, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL)), + vector(1, AttachmentReference(1, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL)), + vector(), + AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL), + vector())); + + 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(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 attachments; + vector subpasses; + vector 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(), + vector(1, AttachmentReference(0, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL)), + vector(), + AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL), + vector())); + subpasses.push_back(Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS, + 0u, + vector(1, AttachmentReference(0, VK_IMAGE_LAYOUT_GENERAL)), + vector(1, AttachmentReference(0, VK_IMAGE_LAYOUT_GENERAL)), + vector(), + AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL), + vector())); + + 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(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 createFormatTestGroup(tcu::TestContext& testCtx) vector(), vector(), AttachmentReference(0, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL), - vector())), + vector())), vector()); addFunctionCaseWithPrograms(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 createFormatTestGroup(tcu::TestContext& testCtx) formatGroup->addChild(loadOpGroup.release()); } + { + de::MovePtr 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 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 storeOpGroup (new tcu::TestCaseGroup(testCtx, storeOps[storeOpNdx].str, storeOps[storeOpNdx].str)); + + for (size_t renderTypeNdx = 0; renderTypeNdx < DE_LENGTH_OF_ARRAY(renderTypes); renderTypeNdx++) + { + { + vector attachments; + vector subpasses; + vector 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(), + vector(), + vector(), + AttachmentReference(0, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL), + vector())); + subpasses.push_back(Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS, + 0u, + vector(1, AttachmentReference(0, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL)), + vector(1, AttachmentReference(1, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL)), + vector(), + AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL), + vector())); + + 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(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 attachments; + vector subpasses; + vector 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(), + vector(), + vector(), + AttachmentReference(0, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL), + vector())); + subpasses.push_back(Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS, + 0u, + vector(1, AttachmentReference(0, VK_IMAGE_LAYOUT_GENERAL)), + vector(), + vector(), + AttachmentReference(0, VK_IMAGE_LAYOUT_GENERAL), + vector())); + + 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(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 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(); } diff --git a/external/vulkancts/mustpass/1.0.2/vk-default.txt b/external/vulkancts/mustpass/1.0.2/vk-default.txt index 0c63987..4d7ca88 100644 --- a/external/vulkancts/mustpass/1.0.2/vk-default.txt +++ b/external/vulkancts/mustpass/1.0.2/vk-default.txt @@ -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