Lines Matching refs:subpass

542 			auto& subpass = m_subpasses[s];
543 subpass.m_colorAttachments.resize(pCreateInfo->pSubpasses[s].colorAttachmentCount);
550 subpass.m_colorAttachments[i].attachmentInfo = vk::initVulkanStructure();
551 subpass.m_colorAttachments[i].index = j;
552 subpass.m_colorAttachments[i].format = pCreateInfo->pAttachments[j].format;
554 subpass.m_colorAttachments[i].attachmentInfo.imageView = DE_NULL;
555 subpass.m_colorAttachments[i].attachmentInfo.imageLayout = pCreateInfo->pSubpasses[s].pColorAttachments[i].layout;
556 subpass.m_colorAttachments[i].attachmentInfo.resolveMode = vk::VK_RESOLVE_MODE_NONE;
557 subpass.m_colorAttachments[i].attachmentInfo.resolveImageView = DE_NULL;
558 subpass.m_colorAttachments[i].attachmentInfo.resolveImageLayout = vk::VK_IMAGE_LAYOUT_UNDEFINED;
559 subpass.m_colorAttachments[i].attachmentInfo.loadOp = pCreateInfo->pAttachments[j].loadOp;
560 subpass.m_colorAttachments[i].attachmentInfo.storeOp = pCreateInfo->pAttachments[j].storeOp;
561 subpass.m_colorAttachments[i].attachmentInfo.clearValue = {};
565 subpass.m_colorAttachments[i].index = VK_ATTACHMENT_UNUSED;
574 subpass.m_depthStencilAttachment.attachmentInfo = vk::initVulkanStructure();
575 subpass.m_depthStencilAttachment.index = j;
576 subpass.m_depthStencilAttachment.format = pCreateInfo->pAttachments[j].format;
578 subpass.m_depthStencilAttachment.attachmentInfo.imageView = DE_NULL;
579 subpass.m_depthStencilAttachment.attachmentInfo.imageLayout = pCreateInfo->pSubpasses[s].pDepthStencilAttachment->layout;
580 subpass.m_depthStencilAttachment.attachmentInfo.resolveMode = vk::VK_RESOLVE_MODE_NONE;
581 subpass.m_depthStencilAttachment.attachmentInfo.resolveImageView = DE_NULL;
582 subpass.m_depthStencilAttachment.attachmentInfo.resolveImageLayout = vk::VK_IMAGE_LAYOUT_UNDEFINED;
583 subpass.m_depthStencilAttachment.attachmentInfo.loadOp = pCreateInfo->pAttachments[j].loadOp;
584 subpass.m_depthStencilAttachment.attachmentInfo.storeOp = pCreateInfo->pAttachments[j].storeOp;
585 subpass.m_depthStencilAttachment.attachmentInfo.clearValue = {};
586 subpass.m_depthStencilAttachment.stencilLoadOp = pCreateInfo->pAttachments[j].stencilLoadOp;
587 subpass.m_depthStencilAttachment.stencilStoreOp = pCreateInfo->pAttachments[j].stencilStoreOp;
591 subpass.m_depthStencilAttachment.index = VK_ATTACHMENT_UNUSED;
597 subpass.m_resolveAttachments.resize(pCreateInfo->pSubpasses[s].colorAttachmentCount);
603 subpass.m_resolveAttachments[i].attachmentInfo = vk::initVulkanStructure();
604 subpass.m_resolveAttachments[i].index = j;
605 subpass.m_resolveAttachments[i].format = pCreateInfo->pAttachments[j].format;
607 subpass.m_resolveAttachments[i].attachmentInfo.imageView = DE_NULL;
608 subpass.m_resolveAttachments[i].attachmentInfo.imageLayout = pCreateInfo->pSubpasses[s].pResolveAttachments[i].layout;
609 subpass.m_resolveAttachments[i].attachmentInfo.resolveMode = vk::VK_RESOLVE_MODE_NONE;
610 subpass.m_resolveAttachments[i].attachmentInfo.resolveImageView = DE_NULL;
611 subpass.m_resolveAttachments[i].attachmentInfo.resolveImageLayout = vk::VK_IMAGE_LAYOUT_UNDEFINED;
612 subpass.m_resolveAttachments[i].attachmentInfo.loadOp = pCreateInfo->pAttachments[j].loadOp;
613 subpass.m_resolveAttachments[i].attachmentInfo.storeOp = pCreateInfo->pAttachments[j].storeOp;
614 subpass.m_resolveAttachments[i].attachmentInfo.clearValue = {};
618 subpass.m_resolveAttachments[i].index = VK_ATTACHMENT_UNUSED;
666 auto& subpass = m_subpasses[s];
667 subpass.m_colorAttachments.resize(pCreateInfo->pSubpasses[s].colorAttachmentCount);
671 subpass.m_msrtss = *msrtss;
676 subpass.m_dsr = *dsr;
679 subpass.m_depthStencilResolveAttachment = *dsr->pDepthStencilResolveAttachment;
680 subpass.m_dsr.pDepthStencilResolveAttachment = &subpass.m_depthStencilResolveAttachment;
689 subpass.m_colorAttachments[i].attachmentInfo = vk::initVulkanStructure();
690 subpass.m_colorAttachments[i].index = j;
691 subpass.m_colorAttachments[i].format = pCreateInfo->pAttachments[j].format;
693 subpass.m_colorAttachments[i].attachmentInfo.imageView = DE_NULL;
694 subpass.m_colorAttachments[i].attachmentInfo.imageLayout = pCreateInfo->pSubpasses[s].pColorAttachments[i].layout;
695 subpass.m_colorAttachments[i].attachmentInfo.resolveMode = vk::VK_RESOLVE_MODE_NONE;
696 subpass.m_colorAttachments[i].attachmentInfo.resolveImageView = DE_NULL;
697 subpass.m_colorAttachments[i].attachmentInfo.resolveImageLayout = vk::VK_IMAGE_LAYOUT_UNDEFINED;
698 subpass.m_colorAttachments[i].attachmentInfo.loadOp = pCreateInfo->pAttachments[j].loadOp;
699 subpass.m_colorAttachments[i].attachmentInfo.storeOp = pCreateInfo->pAttachments[j].storeOp;
700 subpass.m_colorAttachments[i].attachmentInfo.clearValue = {};
704 subpass.m_colorAttachments[i].index = VK_ATTACHMENT_UNUSED;
713 subpass.m_depthStencilAttachment.attachmentInfo = vk::initVulkanStructure();
714 subpass.m_depthStencilAttachment.index = j;
715 subpass.m_depthStencilAttachment.format = pCreateInfo->pAttachments[j].format;
717 subpass.m_depthStencilAttachment.attachmentInfo.imageView = DE_NULL;
718 subpass.m_depthStencilAttachment.attachmentInfo.imageLayout = pCreateInfo->pSubpasses[s].pDepthStencilAttachment->layout;
719 subpass.m_depthStencilAttachment.attachmentInfo.resolveMode = vk::VK_RESOLVE_MODE_NONE;
720 subpass.m_depthStencilAttachment.attachmentInfo.resolveImageView = DE_NULL;
721 subpass.m_depthStencilAttachment.attachmentInfo.resolveImageLayout = vk::VK_IMAGE_LAYOUT_UNDEFINED;
722 subpass.m_depthStencilAttachment.attachmentInfo.loadOp = pCreateInfo->pAttachments[j].loadOp;
723 subpass.m_depthStencilAttachment.attachmentInfo.storeOp = pCreateInfo->pAttachments[j].storeOp;
724 subpass.m_depthStencilAttachment.attachmentInfo.clearValue = {};
725 subpass.m_depthStencilAttachment.stencilLoadOp = pCreateInfo->pAttachments[j].stencilLoadOp;
726 subpass.m_depthStencilAttachment.stencilStoreOp = pCreateInfo->pAttachments[j].stencilStoreOp;
730 subpass.m_depthStencilAttachment.index = VK_ATTACHMENT_UNUSED;
736 subpass.m_resolveAttachments.resize(pCreateInfo->pSubpasses[s].colorAttachmentCount);
742 subpass.m_resolveAttachments[i].attachmentInfo = vk::initVulkanStructure();
743 subpass.m_resolveAttachments[i].index = j;
744 subpass.m_resolveAttachments[i].format = pCreateInfo->pAttachments[j].format;
746 subpass.m_resolveAttachments[i].attachmentInfo.imageView = DE_NULL;
747 subpass.m_resolveAttachments[i].attachmentInfo.imageLayout = pCreateInfo->pSubpasses[s].pResolveAttachments[i].layout;
748 subpass.m_resolveAttachments[i].attachmentInfo.resolveMode = vk::VK_RESOLVE_MODE_NONE;
749 subpass.m_resolveAttachments[i].attachmentInfo.resolveImageView = DE_NULL;
750 subpass.m_resolveAttachments[i].attachmentInfo.resolveImageLayout = vk::VK_IMAGE_LAYOUT_UNDEFINED;
751 subpass.m_resolveAttachments[i].attachmentInfo.loadOp = pCreateInfo->pAttachments[j].loadOp;
752 subpass.m_resolveAttachments[i].attachmentInfo.storeOp = pCreateInfo->pAttachments[j].storeOp;
753 subpass.m_resolveAttachments[i].attachmentInfo.clearValue = {};
757 subpass.m_resolveAttachments[i].index = VK_ATTACHMENT_UNUSED;
791 auto& subpass = m_subpasses[0];
795 subpass.m_colorAttachments.resize(1);
796 subpass.m_colorAttachments[0].attachmentInfo = vk::initVulkanStructure();
797 subpass.m_colorAttachments[0].index = 0u;
798 subpass.m_colorAttachments[0].format = colorFormat;
800 subpass.m_colorAttachments[0].attachmentInfo.imageView = DE_NULL;
801 subpass.m_colorAttachments[0].attachmentInfo.imageLayout = subpassLayoutColor;
802 subpass.m_colorAttachments[0].attachmentInfo.resolveMode = vk::VK_RESOLVE_MODE_NONE;
803 subpass.m_colorAttachments[0].attachmentInfo.resolveImageView = DE_NULL;
804 subpass.m_colorAttachments[0].attachmentInfo.resolveImageLayout = vk::VK_IMAGE_LAYOUT_UNDEFINED;
805 subpass.m_colorAttachments[0].attachmentInfo.loadOp = loadOperation;
806 subpass.m_colorAttachments[0].attachmentInfo.storeOp = VK_ATTACHMENT_STORE_OP_STORE;
807 subpass.m_colorAttachments[0].attachmentInfo.clearValue = {};
828 subpass.m_depthStencilAttachment.attachmentInfo = vk::initVulkanStructure();
829 subpass.m_depthStencilAttachment.index = hasColor ? 1u : 0u;
830 subpass.m_depthStencilAttachment.format = depthStencilFormat;
832 subpass.m_depthStencilAttachment.attachmentInfo.imageView = DE_NULL;
833 subpass.m_depthStencilAttachment.attachmentInfo.imageLayout = subpassLayoutDepthStencil;
834 subpass.m_depthStencilAttachment.attachmentInfo.resolveMode = vk::VK_RESOLVE_MODE_NONE;
835 subpass.m_depthStencilAttachment.attachmentInfo.resolveImageView = DE_NULL;
836 subpass.m_depthStencilAttachment.attachmentInfo.resolveImageLayout = vk::VK_IMAGE_LAYOUT_UNDEFINED;
837 subpass.m_depthStencilAttachment.attachmentInfo.loadOp = loadOperation;
838 subpass.m_depthStencilAttachment.attachmentInfo.storeOp = VK_ATTACHMENT_STORE_OP_STORE;
839 subpass.m_depthStencilAttachment.attachmentInfo.clearValue = {};
840 subpass.m_depthStencilAttachment.stencilLoadOp = loadOperation;
841 subpass.m_depthStencilAttachment.stencilStoreOp = VK_ATTACHMENT_STORE_OP_STORE;
1018 void RenderPassWrapper::transitionLayouts (const DeviceInterface& vk, const VkCommandBuffer commandBuffer, const Subpass& subpass, bool renderPassBegin) const
1050 for (deUint32 j = 0; j < (deUint32)subpass.m_colorAttachments.size(); ++j)
1052 if (subpass.m_colorAttachments[j].index == i)
1065 const VkImageLayout newLayout = subpass.m_colorAttachments[j].attachmentInfo.imageLayout;
1082 if (subpass.m_depthStencilAttachment.index == i)
1084 const auto tcuFormat = vk::mapVkFormat(subpass.m_depthStencilAttachment.format);
1105 const VkImageLayout newLayout = subpass.m_depthStencilAttachment.attachmentInfo.imageLayout;
1121 for (deUint32 j = 0; j < (deUint32)subpass.m_resolveAttachments.size(); ++j)
1123 if (subpass.m_resolveAttachments[j].index == i)
1136 const VkImageLayout newLayout = subpass.m_resolveAttachments[j].attachmentInfo.imageLayout;
1153 if (subpass.m_dsr.sType == vk::VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE)
1155 if (subpass.m_dsr.pDepthStencilResolveAttachment && i == subpass.m_dsr.pDepthStencilResolveAttachment->attachment)
1157 const auto tcuFormat = vk::mapVkFormat(subpass.m_depthStencilAttachment.format);
1178 const VkImageLayout newLayout = subpass.m_dsr.pDepthStencilResolveAttachment->layout;
1253 const auto& subpass = m_subpasses[subpassIndex];
1254 colorFormats->resize(subpass.m_colorAttachments.size());
1255 for (deUint32 i = 0; i < (deUint32)subpass.m_colorAttachments.size(); ++i)
1256 (*colorFormats)[i] = subpass.m_colorAttachments[i].format;
1258 inheritanceRenderingInfo->colorAttachmentCount = (deUint32)subpass.m_colorAttachments.size();
1261 if (subpass.m_depthStencilAttachment.format != vk::VK_FORMAT_UNDEFINED)
1263 const auto tcuFormat = vk::mapVkFormat(subpass.m_depthStencilAttachment.format);
1265 inheritanceRenderingInfo->depthAttachmentFormat = subpass.m_depthStencilAttachment.format;
1267 inheritanceRenderingInfo->stencilAttachmentFormat = subpass.m_depthStencilAttachment.format;
1435 const auto& subpass = m_subpasses[m_activeSubpass];
1437 for (deUint32 i = 0; i < (deUint32)subpass.m_colorAttachments.size(); ++i)
1442 if (subpass.m_colorAttachments[i].index == VK_ATTACHMENT_UNUSED)
1444 colorAttachment = subpass.m_colorAttachments[i].attachmentInfo;
1446 if (!subpass.m_resolveAttachments.empty() && subpass.m_resolveAttachments[i].index != VK_ATTACHMENT_UNUSED)
1448 if (isUintFormat(subpass.m_resolveAttachments[i].format) || isIntFormat(subpass.m_resolveAttachments[i].format))
1452 colorAttachment.resolveImageView = subpass.m_resolveAttachments[i].attachmentInfo.imageView;
1453 colorAttachment.resolveImageLayout = subpass.m_resolveAttachments[i].attachmentInfo.imageLayout;
1460 subpass.m_depthStencilAttachment.attachmentInfo.loadOp = vk::VK_ATTACHMENT_LOAD_OP_LOAD;
1461 VkRenderingAttachmentInfo depthAttachment = subpass.m_depthStencilAttachment.attachmentInfo;
1462 VkRenderingAttachmentInfo stencilAttachment = subpass.m_depthStencilAttachment.attachmentInfo;
1463 stencilAttachment.storeOp = subpass.m_depthStencilAttachment.stencilStoreOp;
1467 const auto tcuFormat = vk::mapVkFormat(subpass.m_depthStencilAttachment.format);
1483 if (subpass.m_msrtss.sType == VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT)
1485 subpass.m_msrtss.pNext = DE_NULL;
1486 m_renderingInfo.pNext = &subpass.m_msrtss;
1489 if (subpass.m_dsr.sType == VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE)
1491 depthAttachment.resolveMode = subpass.m_dsr.depthResolveMode;
1492 stencilAttachment.resolveMode = subpass.m_dsr.stencilResolveMode;
1493 if (subpass.m_dsr.pDepthStencilResolveAttachment)
1495 depthAttachment.resolveImageView = m_imageViews[subpass.m_dsr.pDepthStencilResolveAttachment->attachment];
1496 depthAttachment.resolveImageLayout = subpass.m_dsr.pDepthStencilResolveAttachment->layout;
1497 stencilAttachment.resolveImageView = m_imageViews[subpass.m_dsr.pDepthStencilResolveAttachment->attachment];
1498 stencilAttachment.resolveImageLayout = subpass.m_dsr.pDepthStencilResolveAttachment->layout;
1524 const auto& subpass = m_subpasses[m_activeSubpass];
1526 transitionLayouts(vk, commandBuffer, subpass, false);
1550 for (auto& subpass : m_subpasses)
1552 for (deUint32 i = 0; i < (deUint32)subpass.m_colorAttachments.size(); ++i)
1554 if (subpass.m_colorAttachments[i].index != VK_ATTACHMENT_UNUSED)
1555 subpass.m_colorAttachments[i].attachmentInfo.imageView = pCreateInfo->pAttachments[subpass.m_colorAttachments[i].index];
1558 if (subpass.m_depthStencilAttachment.attachmentInfo.imageLayout != VK_IMAGE_LAYOUT_UNDEFINED)
1560 if (subpass.m_depthStencilAttachment.index != VK_ATTACHMENT_UNUSED)
1561 subpass.m_depthStencilAttachment.attachmentInfo.imageView = pCreateInfo->pAttachments[subpass.m_depthStencilAttachment.index];
1564 for (deUint32 i = 0; i < (deUint32)subpass.m_resolveAttachments.size(); ++i)
1566 if (subpass.m_resolveAttachments[i].index != VK_ATTACHMENT_UNUSED)
1567 subpass.m_resolveAttachments[i].attachmentInfo.imageView = pCreateInfo->pAttachments[subpass.m_resolveAttachments[i].index];
1594 for (auto& subpass : m_subpasses)
1596 DE_ASSERT(subpass.m_colorAttachments.size() <= 1);
1599 if (!subpass.m_colorAttachments.empty() && subpass.m_colorAttachments[0].index < pCreateInfo->attachmentCount)
1600 subpass.m_colorAttachments[0].attachmentInfo.imageView = pCreateInfo->pAttachments[subpass.m_colorAttachments[0].index];
1601 if (subpass.m_depthStencilAttachment.index < pCreateInfo->attachmentCount)
1602 subpass.m_depthStencilAttachment.attachmentInfo.imageView = pCreateInfo->pAttachments[subpass.m_depthStencilAttachment.index];
1631 for (auto& subpass : m_subpasses)
1633 DE_ASSERT(subpass.m_colorAttachments.size() == 1);
1634 subpass.m_colorAttachments[0].attachmentInfo.imageView = colorAttachment;
1664 for (auto& subpass : m_subpasses)
1666 for (deUint32 i = 0; i < (deUint32)subpass.m_colorAttachments.size(); ++i)
1668 if (subpass.m_colorAttachments[i].index != VK_ATTACHMENT_UNUSED)
1669 subpass.m_colorAttachments[i].attachmentInfo.imageView = attachmentsArray[subpass.m_colorAttachments[i].index];
1671 if (subpass.m_depthStencilAttachment.attachmentInfo.imageLayout != VK_IMAGE_LAYOUT_UNDEFINED)
1673 if (subpass.m_depthStencilAttachment.index != VK_ATTACHMENT_UNUSED)
1674 subpass.m_depthStencilAttachment.attachmentInfo.imageView = attachmentsArray[subpass.m_depthStencilAttachment.index];
1676 for (deUint32 i = 0; i < (deUint32)subpass.m_resolveAttachments.size(); ++i)
1678 if (subpass.m_resolveAttachments[i].index != VK_ATTACHMENT_UNUSED)
1679 subpass.m_resolveAttachments[i].attachmentInfo.imageView = attachmentsArray[subpass.m_resolveAttachments[i].index];
2442 const deUint32 subpass,
2458 subpass,
2479 const deUint32 subpass,
2498 subpass,
2522 const deUint32 subpass,
2695 m_internalData->monolithicPipelineCreateInfo.subpass = subpass;
2731 pipelinePartCreateInfo.subpass = subpass;
2765 const deUint32 subpass,
2863 m_internalData->monolithicPipelineCreateInfo.subpass = subpass;
2894 pipelinePartCreateInfo.subpass = subpass;
2922 const deUint32 subpass,
2932 subpass,
2944 const deUint32 subpass,
2962 DE_UNREF(subpass);
3044 pipelinePartCreateInfo.subpass = subpass;
3073 const deUint32 subpass,
3088 DE_UNREF(subpass);
3138 pipelinePartCreateInfo.subpass = subpass;