Lines Matching refs:pass

32 radv_render_pass_add_subpass_dep(struct radv_render_pass *pass,
39 * vkCmdPipelineBarrier() inside the render pass and the driver should
40 * only do the barrier when called, not when starting the render pass.
51 pass->end_barrier.src_stage_mask |= dep->srcStageMask;
52 pass->end_barrier.src_access_mask |= dep->srcAccessMask;
53 pass->end_barrier.dst_access_mask |= dep->dstAccessMask;
56 pass->subpasses[dst].start_barrier.src_stage_mask |= dep->srcStageMask;
57 pass->subpasses[dst].start_barrier.src_access_mask |= dep->srcAccessMask;
58 pass->subpasses[dst].start_barrier.dst_access_mask |= dep->dstAccessMask;
63 radv_render_pass_compile(struct radv_render_pass *pass)
65 for (uint32_t i = 0; i < pass->subpass_count; i++) {
66 struct radv_subpass *subpass = &pass->subpasses[i];
85 &pass->attachments[subpass_att->attachment];
100 &pass->attachments[subpass_att->attachment];
109 &pass->attachments[a];
148 struct radv_render_pass *pass;
155 size = sizeof(*pass);
156 size += pCreateInfo->subpassCount * sizeof(pass->subpasses[0]);
158 size += pCreateInfo->attachmentCount * sizeof(pass->attachments[0]);
160 pass = vk_alloc2(&device->alloc, pAllocator, size, 8,
162 if (pass == NULL)
165 memset(pass, 0, size);
166 pass->attachment_count = pCreateInfo->attachmentCount;
167 pass->subpass_count = pCreateInfo->subpassCount;
168 pass->attachments = (void *) pass + attachments_offset;
181 struct radv_render_pass_attachment *att = &pass->attachments[i];
200 pass->subpass_attachments =
204 if (pass->subpass_attachments == NULL) {
205 vk_free2(&device->alloc, pAllocator, pass);
209 pass->subpass_attachments = NULL;
211 p = pass->subpass_attachments;
214 struct radv_subpass *subpass = &pass->subpasses[i];
281 radv_render_pass_add_subpass_dep(pass, &dep2);
284 radv_render_pass_compile(pass);
286 *pRenderPass = radv_render_pass_to_handle(pass);
307 struct radv_render_pass *pass;
313 size = sizeof(*pass);
314 size += pCreateInfo->subpassCount * sizeof(pass->subpasses[0]);
316 size += pCreateInfo->attachmentCount * sizeof(pass->attachments[0]);
318 pass = vk_alloc2(&device->alloc, pAllocator, size, 8,
320 if (pass == NULL)
323 memset(pass, 0, size);
324 pass->attachment_count = pCreateInfo->attachmentCount;
325 pass->subpass_count = pCreateInfo->subpassCount;
326 pass->attachments = (void *) pass + attachments_offset;
329 struct radv_render_pass_attachment *att = &pass->attachments[i];
348 pass->subpass_attachments =
352 if (pass->subpass_attachments == NULL) {
353 vk_free2(&device->alloc, pAllocator, pass);
357 pass->subpass_attachments = NULL;
359 p = pass->subpass_attachments;
362 struct radv_subpass *subpass = &pass->subpasses[i];
417 radv_render_pass_add_subpass_dep(pass,
421 radv_render_pass_compile(pass);
423 *pRenderPass = radv_render_pass_to_handle(pass);
434 RADV_FROM_HANDLE(radv_render_pass, pass, _pass);
438 vk_free2(&device->alloc, pAllocator, pass->subpass_attachments);
439 vk_free2(&device->alloc, pAllocator, pass);