Lines Matching full:subpass
1876 spirv_inst_iter entrypoint, RENDER_PASS_NODE const *rp, uint32_t subpass) {
1877 const std::vector<VkFormat> &color_formats = rp->subpassColorFormats[subpass];
2293 // For each subpass, verify that corresponding color, input, resolve & depth/stencil attachment references are compatible
2301 errorStr << "color attachments at index " << cIdx << " of subpass index " << spIndex << " are not compatible.";
2308 errorStr << "resolve attachments at index " << cIdx << " of subpass index " << spIndex << " are not compatible.";
2315 errorStr << "depth/stencil attachments at index " << cIdx << " of subpass index " << spIndex
2328 errorStr << "input attachments at index " << i << " of subpass index " << spIndex << " are not compatible.";
2800 pCreateInfo->subpass) &&
3071 // Ensure the subpass index is valid. If not, then validate_pipeline_shaders
3076 pPipeline->graphicsPipelineCI.subpass >= rp_data->second->pCreateInfo->subpassCount) {
3078 DRAWSTATE_INVALID_PIPELINE_CREATE_STATE, "DS", "Invalid Pipeline CreateInfo State: Subpass index %u "
3080 pPipeline->graphicsPipelineCI.subpass, rp_data->second->pCreateInfo->subpassCount - 1);
4314 "Commands cannot be called in a subpass using secondary command buffers.");
4318 "vkCmdExecuteCommands() cannot be called in a subpass using inline commands.");
6995 if (pInfo->subpass >= rp_data->second->pCreateInfo->subpassCount) {
6999 "vkBeginCommandBuffer(): Secondary Command Buffers (%p) must has a subpass index (%d) "
7001 (void *)commandBuffer, pInfo->subpass, rp_data->second->pCreateInfo->subpassCount);
8184 // Validate that attachment is in reference list of active subpass
8203 "vkCmdClearAttachments() attachment index %d not found in attachment reference array of active subpass %d",
8207 if (!pSD->pDepthStencilAttachment || // Says no DS will be used in active subpass
8209 VK_ATTACHMENT_UNUSED)) { // Says no DS will be used in active subpass
8215 "in active subpass %d",
8542 DRAWSTATE_INVALID_BARRIER, "DS", "%s: Barriers cannot be set during subpass %d "
9011 VkBool32 CheckDependencyExists(const layer_data *my_data, const int subpass, const std::vector<uint32_t> &dependent_subpasses,
9016 if (subpass == dependent_subpasses[k])
9018 const DAGNode &node = subpass_to_node[subpass];
9025 if (FindDependency(subpass, dependent_subpasses[k], subpass_to_node, processed_nodes) ||
9026 FindDependency(dependent_subpasses[k], subpass, subpass_to_node, processed_nodes)) {
9031 subpass, dependent_subpasses[k]);
9035 "A dependency between subpasses %d and %d must exist but one is not specified.", subpass,
9048 const VkSubpassDescription &subpass = pCreateInfo->pSubpasses[index];
9049 for (uint32_t j = 0; j < subpass.colorAttachmentCount; ++j) {
9050 if (attachment == subpass.pColorAttachments[j].attachment)
9053 if (subpass.pDepthStencilAttachment && subpass.pDepthStencilAttachment->attachment != VK_ATTACHMENT_UNUSED) {
9054 if (attachment == subpass.pDepthStencilAttachment->attachment)
9064 const VkSubpassDescription &subpass = pCreateInfo->pSubpasses[index];
9066 for (uint32_t j = 0; j < subpass.preserveAttachmentCount; ++j) {
9067 if (subpass.pPreserveAttachments[j] == attachment) {
9076 "Attachment %d is used by a later subpass and must be preserved in subpass %d.", attachment, index);
9155 const VkSubpassDescription &subpass = pCreateInfo->pSubpasses[i];
9156 for (uint32_t j = 0; j < subpass.inputAttachmentCount; ++j) {
9157 uint32_t attachment = subpass.pInputAttachments[j].attachment;
9163 for (uint32_t j = 0; j < subpass.colorAttachmentCount; ++j) {
9164 uint32_t attachment = subpass.pColorAttachments[j].attachment;
9170 if (subpass.pDepthStencilAttachment && subpass.pDepthStencilAttachment->attachment != VK_ATTACHMENT_UNUSED) {
9171 uint32_t attachment = subpass.pDepthStencilAttachment->attachment;
9180 const VkSubpassDescription &subpass = pCreateInfo->pSubpasses[i];
9182 for (uint32_t j = 0; j < subpass.inputAttachmentCount; ++j) {
9183 const uint32_t &attachment = subpass.pInputAttachments[j].attachment;
9187 for (uint32_t j = 0; j < subpass.colorAttachmentCount; ++j) {
9188 const uint32_t &attachment = subpass.pColorAttachments[j].attachment;
9192 if (subpass.pDepthStencilAttachment && subpass.pDepthStencilAttachment->attachment != VK_ATTACHMENT_UNUSED) {
9193 const uint32_t &attachment = subpass.pDepthStencilAttachment->attachment;
9201 const VkSubpassDescription &subpass = pCreateInfo->pSubpasses[i];
9202 for (uint32_t j = 0; j < subpass.inputAttachmentCount; ++j) {
9203 CheckPreserved(my_data, pCreateInfo, i, subpass.pInputAttachments[j].attachment, subpass_to_node, 0, skip_call);
9213 const VkSubpassDescription &subpass = pCreateInfo->pSubpasses[i];
9214 for (uint32_t j = 0; j < subpass.inputAttachmentCount; ++j) {
9215 if (subpass.pInputAttachments[j].layout != VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL &&
9216 subpass.pInputAttachments[j].layout != VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL) {
9217 if (subpass.pInputAttachments[j].layout == VK_IMAGE_LAYOUT_GENERAL) {
9226 string_VkImageLayout(subpass.pInputAttachments[j].layout));
9230 for (uint32_t j = 0; j < subpass.colorAttachmentCount; ++j) {
9231 if (subpass.pColorAttachments[j].layout != VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL) {
9232 if (subpass.pColorAttachments[j].layout == VK_IMAGE_LAYOUT_GENERAL) {
9241 string_VkImageLayout(subpass.pColorAttachments[j].layout));
9245 if ((subpass.pDepthStencilAttachment != NULL) && (subpass.pDepthStencilAttachment->attachment != VK_ATTACHMENT_UNUSED)) {
9246 if (subpass.pDepthStencilAttachment->layout != VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL) {
9247 if (subpass.pDepthStencilAttachment->layout == VK_IMAGE_LAYOUT_GENERAL) {
9257 string_VkImageLayout(subpass.pDepthStencilAttachment->layout));
9351 VkSubpassDescription *subpass = (VkSubpassDescription *)&localRPCI->pSubpasses[i];
9352 const uint32_t attachmentCount = subpass->inputAttachmentCount +
9353 subpass->colorAttachmentCount * (1 + (subpass->pResolveAttachments ? 1 : 0)) +
9354 ((subpass->pDepthStencilAttachment) ? 1 : 0) + subpass->preserveAttachmentCount;
9357 memcpy(attachments, subpass->pInputAttachments, sizeof(attachments[0]) * subpass->inputAttachmentCount);
9358 subpass->pInputAttachments = attachments;
9359 attachments += subpass->inputAttachmentCount;
9361 memcpy(attachments, subpass->pColorAttachments, sizeof(attachments[0]) * subpass->colorAttachmentCount);
9362 subpass->pColorAttachments = attachments;
9363 attachments += subpass->colorAttachmentCount;
9365 if (subpass->pResolveAttachments) {
9366 memcpy(attachments, subpass->pResolveAttachments, sizeof(attachments[0]) * subpass->colorAttachmentCount);
9367 subpass->pResolveAttachments = attachments;
9368 attachments += subpass->colorAttachmentCount;
9371 if (subpass->pDepthStencilAttachment) {
9372 memcpy(attachments, subpass->pDepthStencilAttachment, sizeof(attachments[0]) * 1);
9373 subpass->pDepthStencilAttachment = attachments;
9377 memcpy(attachments, subpass->pPreserveAttachments, sizeof(attachments[0]) * subpass->preserveAttachmentCount);
9378 subpass
9404 const VkSubpassDescription &subpass = pCreateInfo->pSubpasses[i];
9405 for (uint32_t j = 0; j < subpass.inputAttachmentCount; ++j) {
9406 uint32_t attachment = subpass.pInputAttachments[j].attachment;
9410 attachment_first_layout.insert(std::make_pair(attachment, subpass.pInputAttachments[j].layout));
9412 for (uint32_t j = 0; j < subpass.colorAttachmentCount; ++j) {
9413 uint32_t attachment = subpass.pColorAttachments[j].attachment;
9417 attachment_first_layout.insert(std::make_pair(attachment, subpass.pColorAttachments[j].layout));
9419 if (subpass.pDepthStencilAttachment && subpass.pDepthStencilAttachment->attachment != VK_ATTACHMENT_UNUSED) {
9420 uint32_t attachment = subpass.pDepthStencilAttachment->attachment;
9424 attachment_first_layout.insert(std::make_pair(attachment, subpass.pDepthStencilAttachment->layout));
9519 const VkSubpassDescription &subpass = pRenderPassInfo->pSubpasses[subpass_index];
9520 for (uint32_t j = 0; j < subpass.inputAttachmentCount; ++j) {
9521 const VkImageView &image_view = framebufferInfo.pAttachments[subpass.pInputAttachments[j].attachment];
9522 SetLayout(dev_data, pCB, image_view, subpass.pInputAttachments[j].layout);
9524 for (uint32_t j = 0; j < subpass.colorAttachmentCount; ++j) {
9525 const VkImageView &image_view = framebufferInfo.pAttachments[subpass.pColorAttachments[j].attachment];
9526 SetLayout(dev_data, pCB, image_view, subpass.pColorAttachments[j].layout);
9528 if ((subpass.pDepthStencilAttachment != NULL) && (subpass.pDepthStencilAttachment->attachment != VK_ATTACHMENT_UNUSED)) {
9529 const VkImageView &image_view = framebufferInfo.pAttachments[subpass.pDepthStencilAttachment->attachment];
9530 SetLayout(dev_data, pCB, image_view, subpass.pDepthStencilAttachment->layout);
9783 VkCommandBuffer secondaryBuffer, VkRenderPass secondaryPass, const int subpass, bool is_multi) {
9787 const VkSubpassDescription &primary_desc = primary_data->second->pCreateInfo->pSubpasses[subpass];
9788 const VkSubpassDescription &secondary_desc = secondary_data->second->pCreateInfo->pSubpasses[subpass];