From fde804f8fa48f0bcf0202ceb9073d6e01c8bd841 Mon Sep 17 00:00:00 2001 From: Neslisah Date: Thu, 12 Aug 2021 11:32:21 -0400 Subject: [PATCH] dEQP-VK.renderpass*.load_store_op_none.* tests depth-stencil format support check In this test case, depth stencil format is set to VK_FORMAT_D24_UNORM_S8_UINT by default without checking if it is supported or not. If this format is not supported, then the test case crashes without even giving "Not Supported" result. In this update I defined a set of depth stencil formats, and added a separate test case for each depth_stencil format. If the depth_stencil format is not supported, "Not Supported" is returned. Affects: dEQP-VK.renderpass*.load_store_op_none.* Components: Vulkan VK-GL-CTS issue: 3049 Change-Id: Ifea5d0955a8325ecbed7f27296da4120e473d463 (cherry picked from commit 79c44fc79b7d17b8c70d2469e113c764011c51c6) --- .../renderpass-with-dynamic-rendering.txt | 28 +- .../cts/master/vk-master-2021-03-01/renderpass.txt | 28 +- .../master/vk-master-2021-03-01/renderpass2.txt | 28 +- .../renderpass-with-dynamic-rendering.txt | 28 +- android/cts/master/vk-master/renderpass.txt | 28 +- android/cts/master/vk-master/renderpass2.txt | 28 +- .../vktRenderPassLoadStoreOpNoneTests.cpp | 329 +++++++++++++++------ .../renderpass-with-dynamic-rendering.txt | 28 +- .../mustpass/master/vk-default/renderpass.txt | 28 +- .../mustpass/master/vk-default/renderpass2.txt | 28 +- 10 files changed, 449 insertions(+), 132 deletions(-) diff --git a/android/cts/master/vk-master-2021-03-01/renderpass-with-dynamic-rendering.txt b/android/cts/master/vk-master-2021-03-01/renderpass-with-dynamic-rendering.txt index e715e51..0e13204 100644 --- a/android/cts/master/vk-master-2021-03-01/renderpass-with-dynamic-rendering.txt +++ b/android/cts/master/vk-master-2021-03-01/renderpass-with-dynamic-rendering.txt @@ -2675,10 +2675,30 @@ dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_load_op_none_store_op_none_write_off dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_load_op_none_store_op_store dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_load_op_none_store_op_dontcare -dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_load_op_load_store_op_none -dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_load_op_none_store_op_none_write_off -dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_load_op_none_store_op_store -dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_load_op_none_store_op_dontcare +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_none_store_op_dontcare dEQP-VK.renderpass_with_dynamic_rendering.dedicated_allocation.simple.color dEQP-VK.renderpass_with_dynamic_rendering.dedicated_allocation.simple.depth dEQP-VK.renderpass_with_dynamic_rendering.dedicated_allocation.simple.stencil diff --git a/android/cts/master/vk-master-2021-03-01/renderpass.txt b/android/cts/master/vk-master-2021-03-01/renderpass.txt index bb34105..640eab9 100644 --- a/android/cts/master/vk-master-2021-03-01/renderpass.txt +++ b/android/cts/master/vk-master-2021-03-01/renderpass.txt @@ -18813,7 +18813,27 @@ dEQP-VK.renderpass.suballocation.load_store_op_none.depth_load_op_load_store_op_ dEQP-VK.renderpass.suballocation.load_store_op_none.depth_load_op_none_store_op_none_write_off dEQP-VK.renderpass.suballocation.load_store_op_none.depth_load_op_none_store_op_store dEQP-VK.renderpass.suballocation.load_store_op_none.depth_load_op_none_store_op_dontcare -dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_load_op_load_store_op_none -dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_load_op_none_store_op_none_write_off -dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_load_op_none_store_op_store -dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_load_op_none_store_op_dontcare +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_none_store_op_dontcare diff --git a/android/cts/master/vk-master-2021-03-01/renderpass2.txt b/android/cts/master/vk-master-2021-03-01/renderpass2.txt index 83953c5..5ef0149 100644 --- a/android/cts/master/vk-master-2021-03-01/renderpass2.txt +++ b/android/cts/master/vk-master-2021-03-01/renderpass2.txt @@ -2633,7 +2633,27 @@ dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_load_op_load_store_op dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_load_op_none_store_op_none_write_off dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_load_op_none_store_op_store dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_load_op_none_store_op_dontcare -dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_load_op_load_store_op_none -dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_load_op_none_store_op_none_write_off -dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_load_op_none_store_op_store -dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_load_op_none_store_op_dontcare +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_none_store_op_dontcare diff --git a/android/cts/master/vk-master/renderpass-with-dynamic-rendering.txt b/android/cts/master/vk-master/renderpass-with-dynamic-rendering.txt index e715e51..0e13204 100644 --- a/android/cts/master/vk-master/renderpass-with-dynamic-rendering.txt +++ b/android/cts/master/vk-master/renderpass-with-dynamic-rendering.txt @@ -2675,10 +2675,30 @@ dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_load_op_none_store_op_none_write_off dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_load_op_none_store_op_store dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_load_op_none_store_op_dontcare -dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_load_op_load_store_op_none -dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_load_op_none_store_op_none_write_off -dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_load_op_none_store_op_store -dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_load_op_none_store_op_dontcare +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_none_store_op_dontcare dEQP-VK.renderpass_with_dynamic_rendering.dedicated_allocation.simple.color dEQP-VK.renderpass_with_dynamic_rendering.dedicated_allocation.simple.depth dEQP-VK.renderpass_with_dynamic_rendering.dedicated_allocation.simple.stencil diff --git a/android/cts/master/vk-master/renderpass.txt b/android/cts/master/vk-master/renderpass.txt index e38502d..ae2ab5f 100644 --- a/android/cts/master/vk-master/renderpass.txt +++ b/android/cts/master/vk-master/renderpass.txt @@ -26269,10 +26269,30 @@ dEQP-VK.renderpass.suballocation.load_store_op_none.depth_load_op_load_store_op_ dEQP-VK.renderpass.suballocation.load_store_op_none.depth_load_op_none_store_op_none_write_off dEQP-VK.renderpass.suballocation.load_store_op_none.depth_load_op_none_store_op_store dEQP-VK.renderpass.suballocation.load_store_op_none.depth_load_op_none_store_op_dontcare -dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_load_op_load_store_op_none -dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_load_op_none_store_op_none_write_off -dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_load_op_none_store_op_store -dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_load_op_none_store_op_dontcare +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_none_store_op_dontcare dEQP-VK.renderpass.dedicated_allocation.simple.color dEQP-VK.renderpass.dedicated_allocation.simple.depth dEQP-VK.renderpass.dedicated_allocation.simple.stencil diff --git a/android/cts/master/vk-master/renderpass2.txt b/android/cts/master/vk-master/renderpass2.txt index ec1f867..9c37bdb 100644 --- a/android/cts/master/vk-master/renderpass2.txt +++ b/android/cts/master/vk-master/renderpass2.txt @@ -24226,10 +24226,30 @@ dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_load_op_load_store_op dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_load_op_none_store_op_none_write_off dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_load_op_none_store_op_store dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_load_op_none_store_op_dontcare -dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_load_op_load_store_op_none -dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_load_op_none_store_op_none_write_off -dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_load_op_none_store_op_store -dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_load_op_none_store_op_dontcare +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_none_store_op_dontcare dEQP-VK.renderpass2.dedicated_allocation.simple.color dEQP-VK.renderpass2.dedicated_allocation.simple.depth dEQP-VK.renderpass2.dedicated_allocation.simple.stencil diff --git a/external/vulkancts/modules/vulkan/renderpass/vktRenderPassLoadStoreOpNoneTests.cpp b/external/vulkancts/modules/vulkan/renderpass/vktRenderPassLoadStoreOpNoneTests.cpp index 3ee8067..ec9ff5f 100644 --- a/external/vulkancts/modules/vulkan/renderpass/vktRenderPassLoadStoreOpNoneTests.cpp +++ b/external/vulkancts/modules/vulkan/renderpass/vktRenderPassLoadStoreOpNoneTests.cpp @@ -100,6 +100,7 @@ struct TestParams std::vector attachments; std::vector subpasses; RenderingType renderingType; + VkFormat depthStencilFormat; bool alphaBlend; }; @@ -158,6 +159,11 @@ deUint32 getFirstUsage (deUint32 attachmentIdx, const std::vector return ATTACHMENT_USAGE_UNDEFINED; } +std::string getFormatCaseName(VkFormat format) +{ + return de::toLower(de::toString(getFormatStr(format)).substr(10)); +} + template Move createRenderPass (const DeviceInterface& vk, VkDevice vkDevice, @@ -186,7 +192,7 @@ Move createRenderPass (const DeviceInterface& vk, if (testParams.attachments[i].usage & ATTACHMENT_USAGE_DEPTH_STENCIL) { - format = VK_FORMAT_D24_UNORM_S8_UINT; + format = testParams.depthStencilFormat; } else { @@ -386,6 +392,10 @@ void LoadStoreOpNoneTest::checkSupport (Context& ctx) const if (m_testParams.renderingType == RENDERING_TYPE_RENDERPASS2) ctx.requireDeviceFunctionality("VK_KHR_create_renderpass2"); + // Check for dynamic_rendering extension if used + if (m_testParams.renderingType == RENDERING_TYPE_DYNAMIC_RENDERING) + ctx.requireDeviceFunctionality("VK_KHR_dynamic_rendering"); + ctx.requireDeviceFunctionality("VK_EXT_load_store_op_none"); } @@ -629,11 +639,20 @@ tcu::TestStatus LoadStoreOpNoneTestInstance::iterate (void) if (att.verifyInner || att.verifyOuter) usage |= VK_IMAGE_USAGE_TRANSFER_SRC_BIT; if (att.init & ATTACHMENT_INIT_PRE) usage |= VK_IMAGE_USAGE_TRANSFER_DST_BIT; + if (att.usage & ATTACHMENT_USAGE_DEPTH_STENCIL) { - format = VK_FORMAT_D24_UNORM_S8_UINT; aspectFlags = VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT; usage |= VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT; + format = m_testParams.depthStencilFormat; + + VkImageFormatProperties properties; + VkResult result = m_context.getInstanceInterface().getPhysicalDeviceImageFormatProperties( + m_context.getPhysicalDevice(), format, VK_IMAGE_TYPE_2D, VK_IMAGE_TILING_OPTIMAL, usage, 0u, &properties); + if (result != VK_SUCCESS) + { + TCU_THROW(NotSupportedError, "Depth-stencil format not supported"); + } } else { @@ -1086,11 +1105,11 @@ tcu::TestStatus LoadStoreOpNoneTestInstance::iterate (void) if (m_testParams.attachments[i].usage & ATTACHMENT_USAGE_DEPTH) { - textureLevelResult = pipeline::readDepthAttachment(vk, vkDevice, queue, queueFamilyIndex, allocator, *attachmentImages[i], VK_FORMAT_D24_UNORM_S8_UINT, m_imageSize, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL); + textureLevelResult = pipeline::readDepthAttachment(vk, vkDevice, queue, queueFamilyIndex, allocator, *attachmentImages[i], m_testParams.depthStencilFormat, m_imageSize, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL); } else if (m_testParams.attachments[i].usage & ATTACHMENT_USAGE_STENCIL) { - textureLevelResult = pipeline::readStencilAttachment(vk, vkDevice, queue, queueFamilyIndex, allocator, *attachmentImages[i], VK_FORMAT_D24_UNORM_S8_UINT, m_imageSize, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL); + textureLevelResult = pipeline::readStencilAttachment(vk, vkDevice, queue, queueFamilyIndex, allocator, *attachmentImages[i], m_testParams.depthStencilFormat, m_imageSize, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL); } else { @@ -1381,106 +1400,224 @@ tcu::TestCaseGroup* createRenderPassLoadStoreOpNoneTests (tcu::TestContext& test opNoneTests->addChild(new LoadStoreOpNoneTest(testCtx, "depth_load_op_none_store_op_dontcare", "", params)); } - // Preinitialize attachment 0 (color) to green and attachment 1 (stencil) to 128. - // Draw a red rectangle using stencil testing with compare op 'greater' and reference of 255. The stencil test - // will pass. This is followed by another draw with a blue rectangle using the same stencil settings. This time - // the stencil test fails and nothing is written. - // After the renderpass the red color should remain inside the render area of the color buffer. - // Store op 'store' for stencil buffer makes the written values undefined, but the pixels outside - // render area should still contain the original value of 128. + std::vector formats = { VK_FORMAT_D16_UNORM_S8_UINT, VK_FORMAT_D24_UNORM_S8_UINT, VK_FORMAT_D32_SFLOAT_S8_UINT }; + + for (deUint32 f = 0; f < formats.size(); ++f) { - TestParams params; - params.alphaBlend = false; - params.renderingType = renderingType; - params.attachments.push_back({ATTACHMENT_USAGE_COLOR, - VK_ATTACHMENT_LOAD_OP_LOAD, - VK_ATTACHMENT_STORE_OP_STORE, - ATTACHMENT_INIT_PRE, - true, red, - true, green}); - params.attachments.push_back({ATTACHMENT_USAGE_STENCIL, - VK_ATTACHMENT_LOAD_OP_LOAD, - VK_ATTACHMENT_STORE_OP_NONE_EXT, - ATTACHMENT_INIT_PRE, - false, stencilInit, - true, stencilInit}); - params.subpasses.push_back({{{0u, ATTACHMENT_USAGE_COLOR}, {1u, ATTACHMENT_USAGE_STENCIL}}, 2u}); + const std::string formatName = getFormatCaseName(formats[f]); + + // Preinitialize attachment 0 (color) to green and attachment 1 (depth) to 0.5. + // Draw a red rectangle using depth 1.0 and depth op 'greater'. Depth test will pass and update + // depth buffer to 1.0. + // This is followed by another draw with a blue rectangle using the same depth of 1.0. This time + // the depth test fails and nothing is written. + // After the renderpass the red color should remain inside the render area of the color buffer. + // Store op 'store' for depth buffer makes the written values undefined, but the pixels outside + // render area should still contain the original value of 0.5. + { + TestParams params; + params.alphaBlend = false; + params.depthStencilFormat = formats[f]; + params.renderingType = renderingType; + params.attachments.push_back({ATTACHMENT_USAGE_COLOR, + VK_ATTACHMENT_LOAD_OP_LOAD, + VK_ATTACHMENT_STORE_OP_STORE, + ATTACHMENT_INIT_PRE, + true, red, + true, green}); + params.attachments.push_back({ATTACHMENT_USAGE_DEPTH, + VK_ATTACHMENT_LOAD_OP_LOAD, + VK_ATTACHMENT_STORE_OP_NONE_EXT, + ATTACHMENT_INIT_PRE, + false, depthInit, + true, depthInit}); + params.subpasses.push_back({{{0u, ATTACHMENT_USAGE_COLOR}, {1u, ATTACHMENT_USAGE_DEPTH}}, 2u}); + + opNoneTests->addChild(new LoadStoreOpNoneTest(testCtx, "depth_"+formatName+"_load_op_load_store_op_none", "", params)); + } - opNoneTests->addChild(new LoadStoreOpNoneTest(testCtx, "stencil_load_op_load_store_op_none", "", params)); - } + // Preinitialize depth attachment to 0.5. Use a render pass with load and store ops none for the depth, but + // disable depth test which also disables depth writes. The depth attachment should have the original + // preinitialized value after the render pass. + { + TestParams params; + params.alphaBlend = false; + params.depthStencilFormat = formats[f]; + params.renderingType = renderingType; + params.attachments.push_back({ATTACHMENT_USAGE_COLOR, + VK_ATTACHMENT_LOAD_OP_LOAD, + VK_ATTACHMENT_STORE_OP_STORE, + ATTACHMENT_INIT_PRE, + true, red, + true, green}); + params.attachments.push_back({ATTACHMENT_USAGE_DEPTH, + VK_ATTACHMENT_LOAD_OP_NONE_EXT, + VK_ATTACHMENT_STORE_OP_NONE_EXT, + ATTACHMENT_INIT_PRE, + true, depthInit, + true, depthInit}); + params.subpasses.push_back({{{0u, ATTACHMENT_USAGE_COLOR}, {1u, ATTACHMENT_USAGE_DEPTH | ATTACHMENT_USAGE_WRITE_OFF}}, 1u}); + + opNoneTests->addChild(new LoadStoreOpNoneTest(testCtx, "depth_" + formatName + "_load_op_none_store_op_none_write_off", "", params)); + } - // Preinitialize stencil attachment to 128. Use a render pass with load and store ops none for the stencil, but - // disable stencil test which also disables stencil writes. The stencil attachment should have the original - // preinitialized value after the render pass. - { - TestParams params; - params.alphaBlend = false; - params.renderingType = renderingType; - params.attachments.push_back({ATTACHMENT_USAGE_COLOR, - VK_ATTACHMENT_LOAD_OP_LOAD, - VK_ATTACHMENT_STORE_OP_STORE, - ATTACHMENT_INIT_PRE, - true, red, - true, green}); - params.attachments.push_back({ATTACHMENT_USAGE_STENCIL, - VK_ATTACHMENT_LOAD_OP_NONE_EXT, - VK_ATTACHMENT_STORE_OP_NONE_EXT, - ATTACHMENT_INIT_PRE, - true, stencilInit, - true, stencilInit}); - params.subpasses.push_back({{{0u, ATTACHMENT_USAGE_COLOR}, {1u, ATTACHMENT_USAGE_STENCIL | ATTACHMENT_USAGE_WRITE_OFF}}, 1u}); + // Preinitialize attachment 0 (color) to green and depth buffer to 0.5. During the render pass initialize attachment 1 (depth) to 0.25 + // using cmdClearAttachments. Draw a red rectangle using depth 1.0 and depth op 'greater'. Depth test will pass and update + // depth buffer to 1.0. After the renderpass the color buffer should have red inside the render area and depth should have the + // shader updated value of 1.0. + { + TestParams params; + params.alphaBlend = false; + params.depthStencilFormat = formats[f]; + params.renderingType = renderingType; + params.attachments.push_back({ATTACHMENT_USAGE_COLOR, + VK_ATTACHMENT_LOAD_OP_LOAD, + VK_ATTACHMENT_STORE_OP_STORE, + ATTACHMENT_INIT_PRE, + true, red, + true, green}); + params.attachments.push_back({ATTACHMENT_USAGE_DEPTH, + VK_ATTACHMENT_LOAD_OP_NONE_EXT, + VK_ATTACHMENT_STORE_OP_STORE, + ATTACHMENT_INIT_PRE | ATTACHMENT_INIT_CMD_CLEAR, + true, depthFull, + true, depthInit}); + params.subpasses.push_back({{{0u, ATTACHMENT_USAGE_COLOR}, {1u, ATTACHMENT_USAGE_DEPTH}}, 1u}); + + opNoneTests->addChild(new LoadStoreOpNoneTest(testCtx, "depth_" + formatName + "_load_op_none_store_op_store", "", params)); + } - opNoneTests->addChild(new LoadStoreOpNoneTest(testCtx, "stencil_load_op_none_store_op_none_write_off", "", params)); - } + // Preinitialize attachment 0 (color) to green and depth buffer to 0.5. During the render pass initialize attachment 1 (depth) to 0.25 + // using cmdClearAttachments. Draw a red rectangle using depth 1.0 and depth op 'greater' which will pass. + // After the renderpass the color buffer should have red inside the render area. Depth buffer contents inside render + // are is undefined because of store op 'don't care', but the outside should have the original value of 0.5. + { + TestParams params; + params.alphaBlend = false; + params.depthStencilFormat = formats[f]; + params.renderingType = renderingType; + params.attachments.push_back({ATTACHMENT_USAGE_COLOR, + VK_ATTACHMENT_LOAD_OP_LOAD, + VK_ATTACHMENT_STORE_OP_STORE, + ATTACHMENT_INIT_PRE, + true, red, + true, green}); + params.attachments.push_back({ATTACHMENT_USAGE_DEPTH, + VK_ATTACHMENT_LOAD_OP_NONE_EXT, + VK_ATTACHMENT_STORE_OP_DONT_CARE, + ATTACHMENT_INIT_PRE | ATTACHMENT_INIT_CMD_CLEAR, + false, depthFull, + true, depthInit}); + params.subpasses.push_back({{{0u, ATTACHMENT_USAGE_COLOR}, {1u, ATTACHMENT_USAGE_DEPTH}}, 1u}); + + opNoneTests->addChild(new LoadStoreOpNoneTest(testCtx, "depth_" + formatName + "_load_op_none_store_op_dontcare", "", params)); + } - // Preinitialize attachment 0 (color) to green and stencil buffer to 128. During the render pass initialize attachment 1 (stencil) to 64 - // using cmdClearAttachments. Draw a red rectangle using stencil reference of 255 and stencil op 'greater'. Stencil test will pass and update - // stencil buffer to 255. After the renderpass the color buffer should have red inside the render area and stencil should have the - // shader updated value of 255. - { - TestParams params; - params.alphaBlend = false; - params.renderingType = renderingType; - params.attachments.push_back({ATTACHMENT_USAGE_COLOR, - VK_ATTACHMENT_LOAD_OP_LOAD, - VK_ATTACHMENT_STORE_OP_STORE, - ATTACHMENT_INIT_PRE, - true, red, - true, green}); - params.attachments.push_back({ATTACHMENT_USAGE_STENCIL, - VK_ATTACHMENT_LOAD_OP_NONE_EXT, - VK_ATTACHMENT_STORE_OP_STORE, - ATTACHMENT_INIT_PRE | ATTACHMENT_INIT_CMD_CLEAR, - true, stencilFull, - true, stencilInit}); - params.subpasses.push_back({{{0u, ATTACHMENT_USAGE_COLOR}, {1u, ATTACHMENT_USAGE_STENCIL}}, 1u}); + // Preinitialize attachment 0 (color) to green and attachment 1 (stencil) to 128. + // Draw a red rectangle using stencil testing with compare op 'greater' and reference of 255. The stencil test + // will pass. This is followed by another draw with a blue rectangle using the same stencil settings. This time + // the stencil test fails and nothing is written. + // After the renderpass the red color should remain inside the render area of the color buffer. + // Store op 'store' for stencil buffer makes the written values undefined, but the pixels outside + // render area should still contain the original value of 128. + { + TestParams params; + params.alphaBlend = false; + params.depthStencilFormat = formats[f]; + params.renderingType = renderingType; + params.attachments.push_back({ATTACHMENT_USAGE_COLOR, + VK_ATTACHMENT_LOAD_OP_LOAD, + VK_ATTACHMENT_STORE_OP_STORE, + ATTACHMENT_INIT_PRE, + true, red, + true, green}); + params.attachments.push_back({ATTACHMENT_USAGE_STENCIL, + VK_ATTACHMENT_LOAD_OP_LOAD, + VK_ATTACHMENT_STORE_OP_NONE_EXT, + ATTACHMENT_INIT_PRE, + false, stencilInit, + true, stencilInit}); + params.subpasses.push_back({{{0u, ATTACHMENT_USAGE_COLOR}, {1u, ATTACHMENT_USAGE_STENCIL}}, 2u}); + + opNoneTests->addChild(new LoadStoreOpNoneTest(testCtx, "stencil_" + formatName + "_load_op_load_store_op_none", "", params)); + } - opNoneTests->addChild(new LoadStoreOpNoneTest(testCtx, "stencil_load_op_none_store_op_store", "", params)); - } + // Preinitialize stencil attachment to 128. Use a render pass with load and store ops none for the stencil, but + // disable stencil test which also disables stencil writes. The stencil attachment should have the original + // preinitialized value after the render pass. + { + TestParams params; + params.alphaBlend = false; + params.depthStencilFormat = formats[f]; + params.renderingType = renderingType; + params.attachments.push_back({ATTACHMENT_USAGE_COLOR, + VK_ATTACHMENT_LOAD_OP_LOAD, + VK_ATTACHMENT_STORE_OP_STORE, + ATTACHMENT_INIT_PRE, + true, red, + true, green}); + params.attachments.push_back({ATTACHMENT_USAGE_STENCIL, + VK_ATTACHMENT_LOAD_OP_NONE_EXT, + VK_ATTACHMENT_STORE_OP_NONE_EXT, + ATTACHMENT_INIT_PRE, + true, stencilInit, + true, stencilInit}); + params.subpasses.push_back({{{0u, ATTACHMENT_USAGE_COLOR}, {1u, ATTACHMENT_USAGE_STENCIL | ATTACHMENT_USAGE_WRITE_OFF}}, 1u}); + + opNoneTests->addChild(new LoadStoreOpNoneTest(testCtx, "stencil_" + formatName + "_load_op_none_store_op_none_write_off", "", params)); + } - // Preinitialize attachment 0 (color) to green and stencil buffer to 128. During the render pass initialize attachment 1 (stencil) to 64 - // using cmdClearAttachments. Draw a red rectangle using stencil reference 255 and stencil op 'greater' which will pass. - // After the renderpass the color buffer should have red inside the render area. Stencil buffer contents inside render - // are is undefined because of store op 'don't care', but the outside should have the original value of 128. - { - TestParams params; - params.alphaBlend = false; - params.renderingType = renderingType; - params.attachments.push_back({ATTACHMENT_USAGE_COLOR, - VK_ATTACHMENT_LOAD_OP_LOAD, - VK_ATTACHMENT_STORE_OP_STORE, - ATTACHMENT_INIT_PRE, - true, red, - true, green}); - params.attachments.push_back({ATTACHMENT_USAGE_STENCIL, - VK_ATTACHMENT_LOAD_OP_NONE_EXT, - VK_ATTACHMENT_STORE_OP_DONT_CARE, - ATTACHMENT_INIT_PRE | ATTACHMENT_INIT_CMD_CLEAR, - false, stencilFull, - true, stencilInit}); - params.subpasses.push_back({{{0u, ATTACHMENT_USAGE_COLOR}, {1u, ATTACHMENT_USAGE_STENCIL}}, 1u}); + // Preinitialize attachment 0 (color) to green and stencil buffer to 128. During the render pass initialize attachment 1 (stencil) to 64 + // using cmdClearAttachments. Draw a red rectangle using stencil reference of 255 and stencil op 'greater'. Stencil test will pass and update + // stencil buffer to 255. After the renderpass the color buffer should have red inside the render area and stencil should have the + // shader updated value of 255. + { + TestParams params; + params.alphaBlend = false; + params.depthStencilFormat = formats[f]; + params.renderingType = renderingType; + params.attachments.push_back({ATTACHMENT_USAGE_COLOR, + VK_ATTACHMENT_LOAD_OP_LOAD, + VK_ATTACHMENT_STORE_OP_STORE, + ATTACHMENT_INIT_PRE, + true, red, + true, green}); + params.attachments.push_back({ATTACHMENT_USAGE_STENCIL, + VK_ATTACHMENT_LOAD_OP_NONE_EXT, + VK_ATTACHMENT_STORE_OP_STORE, + ATTACHMENT_INIT_PRE | ATTACHMENT_INIT_CMD_CLEAR, + true, stencilFull, + true, stencilInit}); + params.subpasses.push_back({{{0u, ATTACHMENT_USAGE_COLOR}, {1u, ATTACHMENT_USAGE_STENCIL}}, 1u}); + + opNoneTests->addChild(new LoadStoreOpNoneTest(testCtx, "stencil_" + formatName + "_load_op_none_store_op_store", "", params)); + } - opNoneTests->addChild(new LoadStoreOpNoneTest(testCtx, "stencil_load_op_none_store_op_dontcare", "", params)); + // Preinitialize attachment 0 (color) to green and stencil buffer to 128. During the render pass initialize attachment 1 (stencil) to 64 + // using cmdClearAttachments. Draw a red rectangle using stencil reference 255 and stencil op 'greater' which will pass. + // After the renderpass the color buffer should have red inside the render area. Stencil buffer contents inside render + // are is undefined because of store op 'don't care', but the outside should have the original value of 128. + { + TestParams params; + params.alphaBlend = false; + params.depthStencilFormat = formats[f]; + params.renderingType = renderingType; + params.attachments.push_back({ATTACHMENT_USAGE_COLOR, + VK_ATTACHMENT_LOAD_OP_LOAD, + VK_ATTACHMENT_STORE_OP_STORE, + ATTACHMENT_INIT_PRE, + true, red, + true, green}); + params.attachments.push_back({ATTACHMENT_USAGE_STENCIL, + VK_ATTACHMENT_LOAD_OP_NONE_EXT, + VK_ATTACHMENT_STORE_OP_DONT_CARE, + ATTACHMENT_INIT_PRE | ATTACHMENT_INIT_CMD_CLEAR, + false, stencilFull, + true, stencilInit}); + params.subpasses.push_back({{{0u, ATTACHMENT_USAGE_COLOR}, {1u, ATTACHMENT_USAGE_STENCIL}}, 1u}); + + opNoneTests->addChild(new LoadStoreOpNoneTest(testCtx, "stencil_" + formatName + "_load_op_none_store_op_dontcare", "", params)); + } } return opNoneTests.release(); diff --git a/external/vulkancts/mustpass/master/vk-default/renderpass-with-dynamic-rendering.txt b/external/vulkancts/mustpass/master/vk-default/renderpass-with-dynamic-rendering.txt index e715e51..0e13204 100644 --- a/external/vulkancts/mustpass/master/vk-default/renderpass-with-dynamic-rendering.txt +++ b/external/vulkancts/mustpass/master/vk-default/renderpass-with-dynamic-rendering.txt @@ -2675,10 +2675,30 @@ dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_load_op_none_store_op_none_write_off dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_load_op_none_store_op_store dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_load_op_none_store_op_dontcare -dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_load_op_load_store_op_none -dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_load_op_none_store_op_none_write_off -dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_load_op_none_store_op_store -dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_load_op_none_store_op_dontcare +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass_with_dynamic_rendering.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_none_store_op_dontcare dEQP-VK.renderpass_with_dynamic_rendering.dedicated_allocation.simple.color dEQP-VK.renderpass_with_dynamic_rendering.dedicated_allocation.simple.depth dEQP-VK.renderpass_with_dynamic_rendering.dedicated_allocation.simple.stencil diff --git a/external/vulkancts/mustpass/master/vk-default/renderpass.txt b/external/vulkancts/mustpass/master/vk-default/renderpass.txt index e38502d..ae2ab5f 100644 --- a/external/vulkancts/mustpass/master/vk-default/renderpass.txt +++ b/external/vulkancts/mustpass/master/vk-default/renderpass.txt @@ -26269,10 +26269,30 @@ dEQP-VK.renderpass.suballocation.load_store_op_none.depth_load_op_load_store_op_ dEQP-VK.renderpass.suballocation.load_store_op_none.depth_load_op_none_store_op_none_write_off dEQP-VK.renderpass.suballocation.load_store_op_none.depth_load_op_none_store_op_store dEQP-VK.renderpass.suballocation.load_store_op_none.depth_load_op_none_store_op_dontcare -dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_load_op_load_store_op_none -dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_load_op_none_store_op_none_write_off -dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_load_op_none_store_op_store -dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_load_op_none_store_op_dontcare +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_none_store_op_dontcare dEQP-VK.renderpass.dedicated_allocation.simple.color dEQP-VK.renderpass.dedicated_allocation.simple.depth dEQP-VK.renderpass.dedicated_allocation.simple.stencil diff --git a/external/vulkancts/mustpass/master/vk-default/renderpass2.txt b/external/vulkancts/mustpass/master/vk-default/renderpass2.txt index ec1f867..9c37bdb 100644 --- a/external/vulkancts/mustpass/master/vk-default/renderpass2.txt +++ b/external/vulkancts/mustpass/master/vk-default/renderpass2.txt @@ -24226,10 +24226,30 @@ dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_load_op_load_store_op dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_load_op_none_store_op_none_write_off dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_load_op_none_store_op_store dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_load_op_none_store_op_dontcare -dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_load_op_load_store_op_none -dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_load_op_none_store_op_none_write_off -dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_load_op_none_store_op_store -dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_load_op_none_store_op_dontcare +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d16_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d16_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d24_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d24_unorm_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass2.suballocation.load_store_op_none.depth_d32_sfloat_s8_uint_load_op_none_store_op_dontcare +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_load_store_op_none +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_none_store_op_none_write_off +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_none_store_op_store +dEQP-VK.renderpass2.suballocation.load_store_op_none.stencil_d32_sfloat_s8_uint_load_op_none_store_op_dontcare dEQP-VK.renderpass2.dedicated_allocation.simple.color dEQP-VK.renderpass2.dedicated_allocation.simple.depth dEQP-VK.renderpass2.dedicated_allocation.simple.stencil -- 2.7.4