Lines Matching refs:pass
45 struct v3dv_render_pass *pass) in pass_find_subpass_range_for_attachments() argument
47 for (uint32_t i = 0; i < pass->attachment_count; i++) { in pass_find_subpass_range_for_attachments()
48 pass->attachments[i].first_subpass = pass->subpass_count - 1; in pass_find_subpass_range_for_attachments()
49 pass->attachments[i].last_subpass = 0; in pass_find_subpass_range_for_attachments()
50 if (pass->multiview_enabled) { in pass_find_subpass_range_for_attachments()
52 pass->attachments[i].views[j].first_subpass = pass->subpass_count - 1; in pass_find_subpass_range_for_attachments()
53 pass->attachments[i].views[j].last_subpass = 0; in pass_find_subpass_range_for_attachments()
58 for (uint32_t i = 0; i < pass->subpass_count; i++) { in pass_find_subpass_range_for_attachments()
59 const struct v3dv_subpass *subpass = &pass->subpasses[i]; in pass_find_subpass_range_for_attachments()
67 &pass->attachments[attachment_idx]; in pass_find_subpass_range_for_attachments()
91 if (i < pass->attachments[ds_attachment_idx].first_subpass) in pass_find_subpass_range_for_attachments()
92 pass->attachments[ds_attachment_idx].first_subpass = i; in pass_find_subpass_range_for_attachments()
93 if (i > pass->attachments[ds_attachment_idx].last_subpass) in pass_find_subpass_range_for_attachments()
94 pass->attachments[ds_attachment_idx].last_subpass = i; in pass_find_subpass_range_for_attachments()
101 if (i < pass->attachments[input_attachment_idx].first_subpass) in pass_find_subpass_range_for_attachments()
102 pass->attachments[input_attachment_idx].first_subpass = i; in pass_find_subpass_range_for_attachments()
103 if (i > pass->attachments[input_attachment_idx].last_subpass) in pass_find_subpass_range_for_attachments()
104 pass->attachments[input_attachment_idx].last_subpass = i; in pass_find_subpass_range_for_attachments()
112 if (i < pass->attachments[attachment_idx].first_subpass) in pass_find_subpass_range_for_attachments()
113 pass->attachments[attachment_idx].first_subpass = i; in pass_find_subpass_range_for_attachments()
114 if (i > pass->attachments[attachment_idx].last_subpass) in pass_find_subpass_range_for_attachments()
115 pass->attachments[attachment_idx].last_subpass = i; in pass_find_subpass_range_for_attachments()
129 struct v3dv_render_pass *pass; in v3dv_CreateRenderPass() local
137 size_t size = sizeof(*pass); in v3dv_CreateRenderPass()
139 size += pCreateInfo->subpassCount * sizeof(pass->subpasses[0]); in v3dv_CreateRenderPass()
141 size += pCreateInfo->attachmentCount * sizeof(pass->attachments[0]); in v3dv_CreateRenderPass()
143 pass = vk_object_zalloc(&device->vk, pAllocator, size, in v3dv_CreateRenderPass()
145 if (pass == NULL) in v3dv_CreateRenderPass()
148 pass->multiview_enabled = multiview_enabled; in v3dv_CreateRenderPass()
149 pass->attachment_count = pCreateInfo->attachmentCount; in v3dv_CreateRenderPass()
150 pass->attachments = (void *) pass + attachments_offset; in v3dv_CreateRenderPass()
151 pass->subpass_count = pCreateInfo->subpassCount; in v3dv_CreateRenderPass()
152 pass->subpasses = (void *) pass + subpasses_offset; in v3dv_CreateRenderPass()
155 pass->attachments[i].desc = pCreateInfo->pAttachments[i]; in v3dv_CreateRenderPass()
166 pass->subpass_attachments = in v3dv_CreateRenderPass()
169 if (pass->subpass_attachments == NULL) { in v3dv_CreateRenderPass()
170 vk_object_free(&device->vk, pAllocator, pass); in v3dv_CreateRenderPass()
174 pass->subpass_attachments = NULL; in v3dv_CreateRenderPass()
177 struct v3dv_subpass_attachment *p = pass->subpass_attachments; in v3dv_CreateRenderPass()
180 struct v3dv_subpass *subpass = &pass->subpasses[i]; in v3dv_CreateRenderPass()
237 &pass->attachments[subpass->ds_attachment.attachment]; in v3dv_CreateRenderPass()
253 pass_find_subpass_range_for_attachments(device, pass); in v3dv_CreateRenderPass()
257 *pRenderPass = v3dv_render_pass_to_handle(pass); in v3dv_CreateRenderPass()
268 V3DV_FROM_HANDLE(v3dv_render_pass, pass, _pass); in v3dv_DestroyRenderPass()
273 vk_free2(&device->vk.alloc, pAllocator, pass->subpass_attachments); in v3dv_DestroyRenderPass()
274 vk_object_free(&device->vk, pAllocator, pass); in v3dv_DestroyRenderPass()
279 struct v3dv_render_pass *pass, in subpass_get_granularity() argument
296 assert(subpass_idx < pass->subpass_count); in subpass_get_granularity()
297 struct v3dv_subpass *subpass = &pass->subpasses[subpass_idx]; in subpass_get_granularity()
306 &pass->attachments[attachment_idx].desc; in subpass_get_granularity()
335 V3DV_FROM_HANDLE(v3dv_render_pass, pass, renderPass); in v3dv_GetRenderAreaGranularity()
343 for (uint32_t i = 0; i < pass->subpass_count; i++) { in v3dv_GetRenderAreaGranularity()
345 subpass_get_granularity(device, pass, i, &sg); in v3dv_GetRenderAreaGranularity()
376 struct v3dv_render_pass *pass, in v3dv_subpass_area_is_tile_aligned() argument
379 assert(subpass_idx < pass->subpass_count); in v3dv_subpass_area_is_tile_aligned()
382 subpass_get_granularity(device, pass, subpass_idx, &granularity); in v3dv_subpass_area_is_tile_aligned()