From 41544b37264478d36ae4c3e0c2bd11a0ad2fbd2c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mika=20Isoj=C3=A4rvi?= Date: Thu, 9 Mar 2017 12:33:48 -0800 Subject: [PATCH] Fix depth stencil aspect flag in render pass input tests Affected tests: dEQP-VK.renderpass.* -groups depth and stencil tests VK-GL-CTS issue: 216 Components: Vulkan Change-Id: Ib84e42d09e5fea9fbe2f1270c5369b14eb9d688b --- .../modules/vulkan/vktRenderPassTests.cpp | 56 ++++++++++++---------- 1 file changed, 30 insertions(+), 26 deletions(-) diff --git a/external/vulkancts/modules/vulkan/vktRenderPassTests.cpp b/external/vulkancts/modules/vulkan/vktRenderPassTests.cpp index 22411a8..931119c 100644 --- a/external/vulkancts/modules/vulkan/vktRenderPassTests.cpp +++ b/external/vulkancts/modules/vulkan/vktRenderPassTests.cpp @@ -2172,34 +2172,38 @@ public: 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; - } - }; + const tcu::TextureFormat format = mapVkFormat(m_renderInfo.getDepthStencilAttachment()->getFormat()); + const bool hasDepth = hasDepthComponent(format.order); + const bool hasStencil = hasStencilComponent(format.order); + 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; + (hasDepth ? (VkImageAspectFlags)VK_IMAGE_ASPECT_DEPTH_BIT : 0u) + | (hasStencil ? (VkImageAspectFlags)VK_IMAGE_ASPECT_STENCIL_BIT : 0u), // 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; + 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); + selfDeps.push_back(barrier); } } -- 2.7.4