This fixes the tests that do not use, enable or require dynamic rendering
to not chain the VkCommandBufferInheritanceRenderingInfoKHR structure,
which is only for inheritinh the dynamic renderpasses.
Affects: dEQP-VK.renderpass*
VK-GL-CTS Issue: 3165
Components: Vulkan
Change-Id: Idb8fed2bcd6a6bf664cf5516a664b8beaa94484a
(cherry picked from commit
f654a58b74d3f278c43e7e25cdc5d2d29e1d7abf)
VkBool32 pInheritanceInfo_occlusionQueryEnable,
VkQueryControlFlags pInheritanceInfo_queryFlags,
VkQueryPipelineStatisticFlags pInheritanceInfo_pipelineStatistics,
VkBool32 pInheritanceInfo_occlusionQueryEnable,
VkQueryControlFlags pInheritanceInfo_queryFlags,
VkQueryPipelineStatisticFlags pInheritanceInfo_pipelineStatistics,
- const SubpassRenderInfo* pRenderInfo = 0)
+ const SubpassRenderInfo* pRenderInfo = 0,
+ bool dynamicRenderPass = false )
{
VkCommandBufferInheritanceInfo pInheritanceInfo =
{
{
VkCommandBufferInheritanceInfo pInheritanceInfo =
{
else
inheritanceRenderingInfo.rasterizationSamples = VK_SAMPLE_COUNT_1_BIT;
else
inheritanceRenderingInfo.rasterizationSamples = VK_SAMPLE_COUNT_1_BIT;
- pInheritanceInfo.pNext = &inheritanceRenderingInfo;
+ if (dynamicRenderPass)
+ pInheritanceInfo.pNext = &inheritanceRenderingInfo;
}
const VkCommandBufferBeginInfo pBeginInfo =
{
}
const VkCommandBufferBeginInfo pBeginInfo =
{
const vector<pair<VkImageView, VkImageView> >& attachmentViews,
const SubpassRenderInfo& renderInfo,
const vector<Attachment>& attachmentInfos,
const vector<pair<VkImageView, VkImageView> >& attachmentViews,
const SubpassRenderInfo& renderInfo,
const vector<Attachment>& attachmentInfos,
- const AllocationKind allocationKind)
+ const AllocationKind allocationKind,
+ const bool dynamicRendering)
: m_renderInfo (renderInfo)
{
const InstanceInterface& vki = context.getInstanceInterface();
: m_renderInfo (renderInfo)
{
const InstanceInterface& vki = context.getInstanceInterface();
{
m_commandBuffer = allocateCommandBuffer(vk, device, commandBufferPool, VK_COMMAND_BUFFER_LEVEL_SECONDARY);
{
m_commandBuffer = allocateCommandBuffer(vk, device, commandBufferPool, VK_COMMAND_BUFFER_LEVEL_SECONDARY);
- beginCommandBuffer(vk, *m_commandBuffer, vk::VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, renderPass, subpassIndex, framebuffer, VK_FALSE, (VkQueryControlFlags)0, (VkQueryPipelineStatisticFlags)0, &renderInfo);
+ beginCommandBuffer(vk, *m_commandBuffer, vk::VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, renderPass, subpassIndex, framebuffer, VK_FALSE, (VkQueryControlFlags)0, (VkQueryPipelineStatisticFlags)0, &renderInfo, dynamicRendering);
pushRenderCommands(vk, *m_commandBuffer);
endCommandBuffer(vk, *m_commandBuffer);
}
pushRenderCommands(vk, *m_commandBuffer);
endCommandBuffer(vk, *m_commandBuffer);
}
framebuffer = createFramebuffer(vk, device, *renderPass, targetSize, attachmentViews);
for (size_t subpassNdx = 0; subpassNdx < renderPassInfo.getSubpasses().size(); subpassNdx++)
framebuffer = createFramebuffer(vk, device, *renderPass, targetSize, attachmentViews);
for (size_t subpassNdx = 0; subpassNdx < renderPassInfo.getSubpasses().size(); subpassNdx++)
- subpassRenderers.push_back(de::SharedPtr<SubpassRenderer>(new SubpassRenderer(context, vk, device, allocator, *renderPass, *framebuffer, *commandBufferPool, queueIndex, attachmentImages, inputAttachmentViews, subpassRenderInfo[subpassNdx], config.renderPass.getAttachments(), config.allocationKind)));
+ subpassRenderers.push_back(de::SharedPtr<SubpassRenderer>(new SubpassRenderer(context, vk, device, allocator, *renderPass, *framebuffer, *commandBufferPool, queueIndex, attachmentImages, inputAttachmentViews, subpassRenderInfo[subpassNdx], config.renderPass.getAttachments(), config.allocationKind, config.renderingType == RENDERING_TYPE_DYNAMIC_RENDERING)));
beginCommandBuffer(vk, *renderCommandBuffer, (VkCommandBufferUsageFlags)0, DE_NULL, 0, DE_NULL, VK_FALSE, (VkQueryControlFlags)0, (VkQueryPipelineStatisticFlags)0);
pushRenderPassCommands(vk, *renderCommandBuffer, *renderPass, renderPassInfo, attachmentResources, *framebuffer, subpassRenderers, renderPos, renderSize, renderPassClearValues, config.renderTypes, config.renderingType);
beginCommandBuffer(vk, *renderCommandBuffer, (VkCommandBufferUsageFlags)0, DE_NULL, 0, DE_NULL, VK_FALSE, (VkQueryControlFlags)0, (VkQueryPipelineStatisticFlags)0);
pushRenderPassCommands(vk, *renderCommandBuffer, *renderPass, renderPassInfo, attachmentResources, *framebuffer, subpassRenderers, renderPos, renderSize, renderPassClearValues, config.renderTypes, config.renderingType);