Lines Matching refs:pass
40 struct panvk_render_pass *pass;
47 size = sizeof(*pass);
48 size += pCreateInfo->subpassCount * sizeof(pass->subpasses[0]);
50 size += pCreateInfo->attachmentCount * sizeof(pass->attachments[0]);
52 pass = vk_object_zalloc(&device->vk, pAllocator, size,
54 if (pass == NULL)
57 pass->attachment_count = pCreateInfo->attachmentCount;
58 pass->subpass_count = pCreateInfo->subpassCount;
59 pass->attachments = (void *) pass + attachments_offset;
72 struct panvk_render_pass_attachment *att = &pass->attachments[i];
97 pass->subpass_attachments =
102 if (pass->subpass_attachments == NULL) {
103 vk_object_free(&device->vk, pAllocator, pass);
108 p = pass->subpass_attachments;
111 struct panvk_subpass *subpass = &pass->subpasses[i];
128 pass->attachments[desc->pInputAttachments[j].attachment]
146 pass->attachments[idx].view_mask |= subpass->view_mask;
147 if (pass->attachments[idx].first_used_in_subpass == ~0) {
148 pass->attachments[idx].first_used_in_subpass = i;
149 if (pass->attachments[idx].load_op == VK_ATTACHMENT_LOAD_OP_CLEAR)
151 else if (pass->attachments[idx].load_op == VK_ATTACHMENT_LOAD_OP_LOAD)
173 pass->attachments[idx].view_mask |= subpass->view_mask;
183 pass->attachments[idx].view_mask |= subpass->view_mask;
185 if (pass->attachments[idx].first_used_in_subpass == ~0) {
186 pass->attachments[idx].first_used_in_subpass = i;
187 if (pass->attachments[idx].load_op == VK_ATTACHMENT_LOAD_OP_CLEAR)
189 else if (pass->attachments[idx].load_op == VK_ATTACHMENT_LOAD_OP_LOAD)
197 *pRenderPass = panvk_render_pass_to_handle(pass);
207 VK_FROM_HANDLE(panvk_render_pass, pass, _pass);
209 if (!pass)
212 vk_free2(&device->vk.alloc, pAllocator, pass->subpass_attachments);
213 vk_object_free(&device->vk, pAllocator, pass);
221 /* TODO: Return the actual tile size for the render pass? */