layers: Disable previous fix for DS layout transitions
Fix to always transition both depth and stencil aspects for DS images
is causing errors on cube and tri. Disabling the fix and test for now
to avoid unwanted false positives.
diff --git a/tests/layer_validation_tests.cpp b/tests/layer_validation_tests.cpp
index 9984dc3..7ef8562 100644
--- a/tests/layer_validation_tests.cpp
+++ b/tests/layer_validation_tests.cpp
@@ -4095,144 +4095,145 @@
vkDestroyImageView(m_device->device(), view, nullptr);
}
-TEST_F(VkLayerTest, DepthStencilLayoutTransitionForDepthOnlyImageview) {
- TEST_DESCRIPTION("Validate that when an imageView of a depth/stencil image "
- "is used as a depth/stencil framebuffer attachment, the "
- "aspectMask is ignored and both depth and stencil image "
- "subresources are used.");
-
- VkFormatProperties format_properties;
- vkGetPhysicalDeviceFormatProperties(gpu(), VK_FORMAT_D32_SFLOAT_S8_UINT,
- &format_properties);
- if (!(format_properties.optimalTilingFeatures &
- VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT)) {
- return;
- }
-
- m_errorMonitor->ExpectSuccess();
-
- ASSERT_NO_FATAL_FAILURE(InitState());
-
- VkAttachmentDescription attachment = {
- 0,
- VK_FORMAT_D32_SFLOAT_S8_UINT,
- 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_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
- VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL};
-
- VkAttachmentReference att_ref = {
- 0, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL};
-
- VkSubpassDescription subpass = {0, VK_PIPELINE_BIND_POINT_GRAPHICS,
- 0, nullptr,
- 0, nullptr,
- nullptr, &att_ref,
- 0, nullptr};
-
- VkSubpassDependency dep = {0,
- 0,
- VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
- VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
- VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
- VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
- VK_DEPENDENCY_BY_REGION_BIT};
-
- VkRenderPassCreateInfo rpci = {VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,
- nullptr,
- 0,
- 1,
- &attachment,
- 1,
- &subpass,
- 1,
- &dep};
-
- VkResult err;
- VkRenderPass rp;
- err = vkCreateRenderPass(m_device->device(), &rpci, nullptr, &rp);
- ASSERT_VK_SUCCESS(err);
-
- VkImageObj image(m_device);
- image.init_no_layout(32, 32, VK_FORMAT_D32_SFLOAT_S8_UINT,
- 0x26, // usage
- VK_IMAGE_TILING_OPTIMAL, 0);
- ASSERT_TRUE(image.initialized());
- image.SetLayout(0x6, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL);
-
- VkImageViewCreateInfo ivci = {
- VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
- nullptr,
- 0,
- image.handle(),
- VK_IMAGE_VIEW_TYPE_2D,
- VK_FORMAT_D32_SFLOAT_S8_UINT,
- {VK_COMPONENT_SWIZZLE_R, VK_COMPONENT_SWIZZLE_G, VK_COMPONENT_SWIZZLE_B,
- VK_COMPONENT_SWIZZLE_A},
- {0x2, 0, 1, 0, 1},
- };
- VkImageView view;
- err = vkCreateImageView(m_device->device(), &ivci, nullptr, &view);
- ASSERT_VK_SUCCESS(err);
-
- VkFramebufferCreateInfo fci = {VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,
- nullptr,
- 0,
- rp,
- 1,
- &view,
- 32,
- 32,
- 1};
- VkFramebuffer fb;
- err = vkCreateFramebuffer(m_device->device(), &fci, nullptr, &fb);
- ASSERT_VK_SUCCESS(err);
-
- VkRenderPassBeginInfo rpbi = {VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,
- nullptr,
- rp,
- fb,
- {{0, 0}, {32, 32}},
- 0,
- nullptr};
- BeginCommandBuffer();
- vkCmdBeginRenderPass(m_commandBuffer->handle(), &rpbi,
- VK_SUBPASS_CONTENTS_INLINE);
-
- VkImageMemoryBarrier imb = {};
- imb.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
- imb.pNext = nullptr;
- imb.srcAccessMask = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT;
- imb.dstAccessMask = VK_ACCESS_SHADER_READ_BIT;
- imb.oldLayout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL;
- imb.newLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
- imb.srcQueueFamilyIndex = 0;
- imb.dstQueueFamilyIndex = 0;
- imb.image = image.handle();
- imb.subresourceRange.aspectMask = 0x6;
- imb.subresourceRange.baseMipLevel = 0;
- imb.subresourceRange.levelCount = 0x1;
- imb.subresourceRange.baseArrayLayer = 0;
- imb.subresourceRange.layerCount = 0x1;
-
- vkCmdPipelineBarrier(m_commandBuffer->handle(),
- VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
- VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
- VK_DEPENDENCY_BY_REGION_BIT, 0, nullptr, 0, nullptr, 1,
- &imb);
-
- vkCmdEndRenderPass(m_commandBuffer->handle());
- EndCommandBuffer();
- QueueCommandBuffer(false);
- m_errorMonitor->VerifyNotFound();
-
- vkDestroyFramebuffer(m_device->device(), fb, nullptr);
- vkDestroyRenderPass(m_device->device(), rp, nullptr);
- vkDestroyImageView(m_device->device(), view, nullptr);
-}
+// TODO : Re-enable this test when DS-layout workaround is fixed
+//TEST_F(VkLayerTest, DepthStencilLayoutTransitionForDepthOnlyImageview) {
+// TEST_DESCRIPTION("Validate that when an imageView of a depth/stencil image "
+// "is used as a depth/stencil framebuffer attachment, the "
+// "aspectMask is ignored and both depth and stencil image "
+// "subresources are used.");
+//
+// VkFormatProperties format_properties;
+// vkGetPhysicalDeviceFormatProperties(gpu(), VK_FORMAT_D32_SFLOAT_S8_UINT,
+// &format_properties);
+// if (!(format_properties.optimalTilingFeatures &
+// VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT)) {
+// return;
+// }
+//
+// m_errorMonitor->ExpectSuccess();
+//
+// ASSERT_NO_FATAL_FAILURE(InitState());
+//
+// VkAttachmentDescription attachment = {
+// 0,
+// VK_FORMAT_D32_SFLOAT_S8_UINT,
+// 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_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
+// VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL};
+//
+// VkAttachmentReference att_ref = {
+// 0, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL};
+//
+// VkSubpassDescription subpass = {0, VK_PIPELINE_BIND_POINT_GRAPHICS,
+// 0, nullptr,
+// 0, nullptr,
+// nullptr, &att_ref,
+// 0, nullptr};
+//
+// VkSubpassDependency dep = {0,
+// 0,
+// VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
+// VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
+// VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
+// VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
+// VK_DEPENDENCY_BY_REGION_BIT};
+//
+// VkRenderPassCreateInfo rpci = {VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,
+// nullptr,
+// 0,
+// 1,
+// &attachment,
+// 1,
+// &subpass,
+// 1,
+// &dep};
+//
+// VkResult err;
+// VkRenderPass rp;
+// err = vkCreateRenderPass(m_device->device(), &rpci, nullptr, &rp);
+// ASSERT_VK_SUCCESS(err);
+//
+// VkImageObj image(m_device);
+// image.init_no_layout(32, 32, VK_FORMAT_D32_SFLOAT_S8_UINT,
+// 0x26, // usage
+// VK_IMAGE_TILING_OPTIMAL, 0);
+// ASSERT_TRUE(image.initialized());
+// image.SetLayout(0x6, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL);
+//
+// VkImageViewCreateInfo ivci = {
+// VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
+// nullptr,
+// 0,
+// image.handle(),
+// VK_IMAGE_VIEW_TYPE_2D,
+// VK_FORMAT_D32_SFLOAT_S8_UINT,
+// {VK_COMPONENT_SWIZZLE_R, VK_COMPONENT_SWIZZLE_G, VK_COMPONENT_SWIZZLE_B,
+// VK_COMPONENT_SWIZZLE_A},
+// {0x2, 0, 1, 0, 1},
+// };
+// VkImageView view;
+// err = vkCreateImageView(m_device->device(), &ivci, nullptr, &view);
+// ASSERT_VK_SUCCESS(err);
+//
+// VkFramebufferCreateInfo fci = {VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,
+// nullptr,
+// 0,
+// rp,
+// 1,
+// &view,
+// 32,
+// 32,
+// 1};
+// VkFramebuffer fb;
+// err = vkCreateFramebuffer(m_device->device(), &fci, nullptr, &fb);
+// ASSERT_VK_SUCCESS(err);
+//
+// VkRenderPassBeginInfo rpbi = {VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,
+// nullptr,
+// rp,
+// fb,
+// {{0, 0}, {32, 32}},
+// 0,
+// nullptr};
+// BeginCommandBuffer();
+// vkCmdBeginRenderPass(m_commandBuffer->handle(), &rpbi,
+// VK_SUBPASS_CONTENTS_INLINE);
+//
+// VkImageMemoryBarrier imb = {};
+// imb.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
+// imb.pNext = nullptr;
+// imb.srcAccessMask = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT;
+// imb.dstAccessMask = VK_ACCESS_SHADER_READ_BIT;
+// imb.oldLayout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL;
+// imb.newLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
+// imb.srcQueueFamilyIndex = 0;
+// imb.dstQueueFamilyIndex = 0;
+// imb.image = image.handle();
+// imb.subresourceRange.aspectMask = 0x6;
+// imb.subresourceRange.baseMipLevel = 0;
+// imb.subresourceRange.levelCount = 0x1;
+// imb.subresourceRange.baseArrayLayer = 0;
+// imb.subresourceRange.layerCount = 0x1;
+//
+// vkCmdPipelineBarrier(m_commandBuffer->handle(),
+// VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
+// VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
+// VK_DEPENDENCY_BY_REGION_BIT, 0, nullptr, 0, nullptr, 1,
+// &imb);
+//
+// vkCmdEndRenderPass(m_commandBuffer->handle());
+// EndCommandBuffer();
+// QueueCommandBuffer(false);
+// m_errorMonitor->VerifyNotFound();
+//
+// vkDestroyFramebuffer(m_device->device(), fb, nullptr);
+// vkDestroyRenderPass(m_device->device(), rp, nullptr);
+// vkDestroyImageView(m_device->device(), view, nullptr);
+//}
TEST_F(VkLayerTest, RenderPassTransitionsAttachmentUnused) {
TEST_DESCRIPTION("Ensure that layout transitions work correctly without "