Do not test CLEAR loadOp with read-only depth stencil image layouts
authorSlawomir Cygan <slawomir.cygan@intel.com>
Tue, 24 Apr 2018 15:50:19 +0000 (17:50 +0200)
committerSlawomir Cygan <slawomir.cygan@intel.com>
Thu, 26 Apr 2018 16:40:53 +0000 (18:40 +0200)
It is invalid to use implicit clears with depth stencil images, which first
render pass usage is in read only depth/stencil image layout

Spec:
"
For any member of pAttachments with a loadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR,
the first use of that attachment must not specify a layout equal to
VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL.

For any member of pAttachments with a stencilLoadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR,
the first use of that attachment must not specify a layout equal to
VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL."

Component: Vulkan

Affects:
dEQP-VK.renderpass.suballocation.formats.d*.clear.*_read_only

VK-GL-CTS Issue: 1144

Change-Id: Iad78473fe4bdf87dac5aff5bcc1c2b888e790cb8

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

index 9159a4c..ae7462a 100644 (file)
@@ -159812,14 +159812,8 @@ dEQP-VK.renderpass.suballocation.formats.d32_sfloat.input.dont_care.dont_care.se
 dEQP-VK.renderpass.suballocation.formats.d32_sfloat.input.dont_care.dont_care.clear_draw_use_input_aspect
 dEQP-VK.renderpass.suballocation.formats.d32_sfloat.input.dont_care.dont_care.self_dep_clear_draw_use_input_aspect
 dEQP-VK.renderpass.suballocation.formats.d24_unorm_s8_uint.clear.clear
-dEQP-VK.renderpass.suballocation.formats.d24_unorm_s8_uint.clear.clear_depth_read_only
-dEQP-VK.renderpass.suballocation.formats.d24_unorm_s8_uint.clear.clear_stencil_read_only
 dEQP-VK.renderpass.suballocation.formats.d24_unorm_s8_uint.clear.draw
-dEQP-VK.renderpass.suballocation.formats.d24_unorm_s8_uint.clear.draw_depth_read_only
-dEQP-VK.renderpass.suballocation.formats.d24_unorm_s8_uint.clear.draw_stencil_read_only
 dEQP-VK.renderpass.suballocation.formats.d24_unorm_s8_uint.clear.clear_draw
-dEQP-VK.renderpass.suballocation.formats.d24_unorm_s8_uint.clear.clear_draw_depth_read_only
-dEQP-VK.renderpass.suballocation.formats.d24_unorm_s8_uint.clear.clear_draw_stencil_read_only
 dEQP-VK.renderpass.suballocation.formats.d24_unorm_s8_uint.load.clear
 dEQP-VK.renderpass.suballocation.formats.d24_unorm_s8_uint.load.clear_depth_read_only
 dEQP-VK.renderpass.suballocation.formats.d24_unorm_s8_uint.load.clear_stencil_read_only
@@ -160055,14 +160049,8 @@ dEQP-VK.renderpass.suballocation.formats.d24_unorm_s8_uint.input.dont_care.dont_
 dEQP-VK.renderpass.suballocation.formats.d24_unorm_s8_uint.input.dont_care.dont_care.clear_draw_use_input_aspect_stencil_read_only
 dEQP-VK.renderpass.suballocation.formats.d24_unorm_s8_uint.input.dont_care.dont_care.self_dep_clear_draw_use_input_aspect_stencil_read_only
 dEQP-VK.renderpass.suballocation.formats.d32_sfloat_s8_uint.clear.clear
-dEQP-VK.renderpass.suballocation.formats.d32_sfloat_s8_uint.clear.clear_depth_read_only
-dEQP-VK.renderpass.suballocation.formats.d32_sfloat_s8_uint.clear.clear_stencil_read_only
 dEQP-VK.renderpass.suballocation.formats.d32_sfloat_s8_uint.clear.draw
-dEQP-VK.renderpass.suballocation.formats.d32_sfloat_s8_uint.clear.draw_depth_read_only
-dEQP-VK.renderpass.suballocation.formats.d32_sfloat_s8_uint.clear.draw_stencil_read_only
 dEQP-VK.renderpass.suballocation.formats.d32_sfloat_s8_uint.clear.clear_draw
-dEQP-VK.renderpass.suballocation.formats.d32_sfloat_s8_uint.clear.clear_draw_depth_read_only
-dEQP-VK.renderpass.suballocation.formats.d32_sfloat_s8_uint.clear.clear_draw_stencil_read_only
 dEQP-VK.renderpass.suballocation.formats.d32_sfloat_s8_uint.load.clear
 dEQP-VK.renderpass.suballocation.formats.d32_sfloat_s8_uint.load.clear_depth_read_only
 dEQP-VK.renderpass.suballocation.formats.d32_sfloat_s8_uint.load.clear_stencil_read_only
@@ -165736,14 +165724,8 @@ dEQP-VK.renderpass.dedicated_allocation.formats.d32_sfloat.input.dont_care.dont_
 dEQP-VK.renderpass.dedicated_allocation.formats.d32_sfloat.input.dont_care.dont_care.clear_draw_use_input_aspect
 dEQP-VK.renderpass.dedicated_allocation.formats.d32_sfloat.input.dont_care.dont_care.self_dep_clear_draw_use_input_aspect
 dEQP-VK.renderpass.dedicated_allocation.formats.d24_unorm_s8_uint.clear.clear
-dEQP-VK.renderpass.dedicated_allocation.formats.d24_unorm_s8_uint.clear.clear_depth_read_only
-dEQP-VK.renderpass.dedicated_allocation.formats.d24_unorm_s8_uint.clear.clear_stencil_read_only
 dEQP-VK.renderpass.dedicated_allocation.formats.d24_unorm_s8_uint.clear.draw
-dEQP-VK.renderpass.dedicated_allocation.formats.d24_unorm_s8_uint.clear.draw_depth_read_only
-dEQP-VK.renderpass.dedicated_allocation.formats.d24_unorm_s8_uint.clear.draw_stencil_read_only
 dEQP-VK.renderpass.dedicated_allocation.formats.d24_unorm_s8_uint.clear.clear_draw
-dEQP-VK.renderpass.dedicated_allocation.formats.d24_unorm_s8_uint.clear.clear_draw_depth_read_only
-dEQP-VK.renderpass.dedicated_allocation.formats.d24_unorm_s8_uint.clear.clear_draw_stencil_read_only
 dEQP-VK.renderpass.dedicated_allocation.formats.d24_unorm_s8_uint.load.clear
 dEQP-VK.renderpass.dedicated_allocation.formats.d24_unorm_s8_uint.load.clear_depth_read_only
 dEQP-VK.renderpass.dedicated_allocation.formats.d24_unorm_s8_uint.load.clear_stencil_read_only
@@ -165979,14 +165961,8 @@ dEQP-VK.renderpass.dedicated_allocation.formats.d24_unorm_s8_uint.input.dont_car
 dEQP-VK.renderpass.dedicated_allocation.formats.d24_unorm_s8_uint.input.dont_care.dont_care.clear_draw_use_input_aspect_stencil_read_only
 dEQP-VK.renderpass.dedicated_allocation.formats.d24_unorm_s8_uint.input.dont_care.dont_care.self_dep_clear_draw_use_input_aspect_stencil_read_only
 dEQP-VK.renderpass.dedicated_allocation.formats.d32_sfloat_s8_uint.clear.clear
-dEQP-VK.renderpass.dedicated_allocation.formats.d32_sfloat_s8_uint.clear.clear_depth_read_only
-dEQP-VK.renderpass.dedicated_allocation.formats.d32_sfloat_s8_uint.clear.clear_stencil_read_only
 dEQP-VK.renderpass.dedicated_allocation.formats.d32_sfloat_s8_uint.clear.draw
-dEQP-VK.renderpass.dedicated_allocation.formats.d32_sfloat_s8_uint.clear.draw_depth_read_only
-dEQP-VK.renderpass.dedicated_allocation.formats.d32_sfloat_s8_uint.clear.draw_stencil_read_only
 dEQP-VK.renderpass.dedicated_allocation.formats.d32_sfloat_s8_uint.clear.clear_draw
-dEQP-VK.renderpass.dedicated_allocation.formats.d32_sfloat_s8_uint.clear.clear_draw_depth_read_only
-dEQP-VK.renderpass.dedicated_allocation.formats.d32_sfloat_s8_uint.clear.clear_draw_stencil_read_only
 dEQP-VK.renderpass.dedicated_allocation.formats.d32_sfloat_s8_uint.load.clear
 dEQP-VK.renderpass.dedicated_allocation.formats.d32_sfloat_s8_uint.load.clear_depth_read_only
 dEQP-VK.renderpass.dedicated_allocation.formats.d32_sfloat_s8_uint.load.clear_stencil_read_only
index d00cf5f..7237e30 100644 (file)
@@ -5849,7 +5849,7 @@ void addFormatTests (tcu::TestCaseGroup* group, AllocationKind allocationKind)
                                        addFunctionCaseWithPrograms<TestConfig>(loadOpGroup.get(), renderTypes[renderTypeNdx].str, renderTypes[renderTypeNdx].str, createTestShaders, renderPassTest, TestConfig(renderPass, renderTypes[renderTypeNdx].types, TestConfig::COMMANDBUFFERTYPES_INLINE, TestConfig::IMAGEMEMORY_STRICT, targetSize, renderPos, renderSize, 90239, allocationKind));
                                }
 
-                               if (isStencilAttachment && isDepthAttachment)
+                               if (isStencilAttachment && isDepthAttachment && loadOp != VK_ATTACHMENT_LOAD_OP_CLEAR)
                                {
                                        {
                                                const RenderPass                        renderPass                      (vector<Attachment>(1, Attachment(vkFormat,
index b1e635f..a696771 100644 (file)
@@ -159805,14 +159805,8 @@ dEQP-VK.renderpass.suballocation.formats.d32_sfloat.input.dont_care.dont_care.se
 dEQP-VK.renderpass.suballocation.formats.d32_sfloat.input.dont_care.dont_care.clear_draw_use_input_aspect
 dEQP-VK.renderpass.suballocation.formats.d32_sfloat.input.dont_care.dont_care.self_dep_clear_draw_use_input_aspect
 dEQP-VK.renderpass.suballocation.formats.d24_unorm_s8_uint.clear.clear
-dEQP-VK.renderpass.suballocation.formats.d24_unorm_s8_uint.clear.clear_depth_read_only
-dEQP-VK.renderpass.suballocation.formats.d24_unorm_s8_uint.clear.clear_stencil_read_only
 dEQP-VK.renderpass.suballocation.formats.d24_unorm_s8_uint.clear.draw
-dEQP-VK.renderpass.suballocation.formats.d24_unorm_s8_uint.clear.draw_depth_read_only
-dEQP-VK.renderpass.suballocation.formats.d24_unorm_s8_uint.clear.draw_stencil_read_only
 dEQP-VK.renderpass.suballocation.formats.d24_unorm_s8_uint.clear.clear_draw
-dEQP-VK.renderpass.suballocation.formats.d24_unorm_s8_uint.clear.clear_draw_depth_read_only
-dEQP-VK.renderpass.suballocation.formats.d24_unorm_s8_uint.clear.clear_draw_stencil_read_only
 dEQP-VK.renderpass.suballocation.formats.d24_unorm_s8_uint.load.clear
 dEQP-VK.renderpass.suballocation.formats.d24_unorm_s8_uint.load.clear_depth_read_only
 dEQP-VK.renderpass.suballocation.formats.d24_unorm_s8_uint.load.clear_stencil_read_only
@@ -160048,14 +160042,8 @@ dEQP-VK.renderpass.suballocation.formats.d24_unorm_s8_uint.input.dont_care.dont_
 dEQP-VK.renderpass.suballocation.formats.d24_unorm_s8_uint.input.dont_care.dont_care.clear_draw_use_input_aspect_stencil_read_only
 dEQP-VK.renderpass.suballocation.formats.d24_unorm_s8_uint.input.dont_care.dont_care.self_dep_clear_draw_use_input_aspect_stencil_read_only
 dEQP-VK.renderpass.suballocation.formats.d32_sfloat_s8_uint.clear.clear
-dEQP-VK.renderpass.suballocation.formats.d32_sfloat_s8_uint.clear.clear_depth_read_only
-dEQP-VK.renderpass.suballocation.formats.d32_sfloat_s8_uint.clear.clear_stencil_read_only
 dEQP-VK.renderpass.suballocation.formats.d32_sfloat_s8_uint.clear.draw
-dEQP-VK.renderpass.suballocation.formats.d32_sfloat_s8_uint.clear.draw_depth_read_only
-dEQP-VK.renderpass.suballocation.formats.d32_sfloat_s8_uint.clear.draw_stencil_read_only
 dEQP-VK.renderpass.suballocation.formats.d32_sfloat_s8_uint.clear.clear_draw
-dEQP-VK.renderpass.suballocation.formats.d32_sfloat_s8_uint.clear.clear_draw_depth_read_only
-dEQP-VK.renderpass.suballocation.formats.d32_sfloat_s8_uint.clear.clear_draw_stencil_read_only
 dEQP-VK.renderpass.suballocation.formats.d32_sfloat_s8_uint.load.clear
 dEQP-VK.renderpass.suballocation.formats.d32_sfloat_s8_uint.load.clear_depth_read_only
 dEQP-VK.renderpass.suballocation.formats.d32_sfloat_s8_uint.load.clear_stencil_read_only
@@ -165729,14 +165717,8 @@ dEQP-VK.renderpass.dedicated_allocation.formats.d32_sfloat.input.dont_care.dont_
 dEQP-VK.renderpass.dedicated_allocation.formats.d32_sfloat.input.dont_care.dont_care.clear_draw_use_input_aspect
 dEQP-VK.renderpass.dedicated_allocation.formats.d32_sfloat.input.dont_care.dont_care.self_dep_clear_draw_use_input_aspect
 dEQP-VK.renderpass.dedicated_allocation.formats.d24_unorm_s8_uint.clear.clear
-dEQP-VK.renderpass.dedicated_allocation.formats.d24_unorm_s8_uint.clear.clear_depth_read_only
-dEQP-VK.renderpass.dedicated_allocation.formats.d24_unorm_s8_uint.clear.clear_stencil_read_only
 dEQP-VK.renderpass.dedicated_allocation.formats.d24_unorm_s8_uint.clear.draw
-dEQP-VK.renderpass.dedicated_allocation.formats.d24_unorm_s8_uint.clear.draw_depth_read_only
-dEQP-VK.renderpass.dedicated_allocation.formats.d24_unorm_s8_uint.clear.draw_stencil_read_only
 dEQP-VK.renderpass.dedicated_allocation.formats.d24_unorm_s8_uint.clear.clear_draw
-dEQP-VK.renderpass.dedicated_allocation.formats.d24_unorm_s8_uint.clear.clear_draw_depth_read_only
-dEQP-VK.renderpass.dedicated_allocation.formats.d24_unorm_s8_uint.clear.clear_draw_stencil_read_only
 dEQP-VK.renderpass.dedicated_allocation.formats.d24_unorm_s8_uint.load.clear
 dEQP-VK.renderpass.dedicated_allocation.formats.d24_unorm_s8_uint.load.clear_depth_read_only
 dEQP-VK.renderpass.dedicated_allocation.formats.d24_unorm_s8_uint.load.clear_stencil_read_only
@@ -165972,14 +165954,8 @@ dEQP-VK.renderpass.dedicated_allocation.formats.d24_unorm_s8_uint.input.dont_car
 dEQP-VK.renderpass.dedicated_allocation.formats.d24_unorm_s8_uint.input.dont_care.dont_care.clear_draw_use_input_aspect_stencil_read_only
 dEQP-VK.renderpass.dedicated_allocation.formats.d24_unorm_s8_uint.input.dont_care.dont_care.self_dep_clear_draw_use_input_aspect_stencil_read_only
 dEQP-VK.renderpass.dedicated_allocation.formats.d32_sfloat_s8_uint.clear.clear
-dEQP-VK.renderpass.dedicated_allocation.formats.d32_sfloat_s8_uint.clear.clear_depth_read_only
-dEQP-VK.renderpass.dedicated_allocation.formats.d32_sfloat_s8_uint.clear.clear_stencil_read_only
 dEQP-VK.renderpass.dedicated_allocation.formats.d32_sfloat_s8_uint.clear.draw
-dEQP-VK.renderpass.dedicated_allocation.formats.d32_sfloat_s8_uint.clear.draw_depth_read_only
-dEQP-VK.renderpass.dedicated_allocation.formats.d32_sfloat_s8_uint.clear.draw_stencil_read_only
 dEQP-VK.renderpass.dedicated_allocation.formats.d32_sfloat_s8_uint.clear.clear_draw
-dEQP-VK.renderpass.dedicated_allocation.formats.d32_sfloat_s8_uint.clear.clear_draw_depth_read_only
-dEQP-VK.renderpass.dedicated_allocation.formats.d32_sfloat_s8_uint.clear.clear_draw_stencil_read_only
 dEQP-VK.renderpass.dedicated_allocation.formats.d32_sfloat_s8_uint.load.clear
 dEQP-VK.renderpass.dedicated_allocation.formats.d32_sfloat_s8_uint.load.clear_depth_read_only
 dEQP-VK.renderpass.dedicated_allocation.formats.d32_sfloat_s8_uint.load.clear_stencil_read_only