Lines Matching defs:bbo

352    struct anv_batch_bo *bbo = vk_zalloc(&cmd_buffer->vk.pool->alloc, sizeof(*bbo),
354 if (bbo == NULL)
358 size, &bbo->bo);
362 result = anv_reloc_list_init(&bbo->relocs, &cmd_buffer->vk.pool->alloc);
366 *bbo_out = bbo;
371 anv_bo_pool_free(&cmd_buffer->device->batch_bo_pool, bbo->bo);
373 vk_free(&cmd_buffer->vk.pool->alloc, bbo);
385 struct anv_batch_bo *bbo = vk_alloc(&cmd_buffer->vk.pool->alloc, sizeof(*bbo),
387 if (bbo == NULL)
391 other_bbo->bo->size, &bbo->bo);
395 result = anv_reloc_list_init_clone(&bbo->relocs, &cmd_buffer->vk.pool->alloc,
400 bbo->length = other_bbo->length;
401 memcpy(bbo->bo->map, other_bbo->bo->map, other_bbo->length);
402 *bbo_out = bbo;
407 anv_bo_pool_free(&cmd_buffer->device->batch_bo_pool, bbo->bo);
409 vk_free(&cmd_buffer->vk.pool->alloc, bbo);
415 anv_batch_bo_start(struct anv_batch_bo *bbo, struct anv_batch *batch,
418 anv_batch_set_storage(batch, (struct anv_address) { .bo = bbo->bo, },
419 bbo->bo->map, bbo->bo->size - batch_padding);
420 batch->relocs = &bbo->relocs;
421 anv_reloc_list_clear(&bbo->relocs);
425 anv_batch_bo_continue(struct anv_batch_bo *bbo, struct anv_batch *batch,
428 batch->start_addr = (struct anv_address) { .bo = bbo->bo, };
429 batch->start = bbo->bo->map;
430 batch->next = bbo->bo->map + bbo->length;
431 batch->end = bbo->bo->map + bbo->bo->size - batch_padding;
432 batch->relocs = &bbo->relocs;
436 anv_batch_bo_finish(struct anv_batch_bo *bbo, struct anv_batch *batch)
438 assert(batch->start == bbo->bo->map);
439 bbo->length = batch->next - batch->start;
440 VG(VALGRIND_CHECK_MEM_IS_DEFINED(batch->start, bbo->length));
444 anv_batch_bo_grow(struct anv_cmd_buffer *cmd_buffer, struct anv_batch_bo *bbo,
448 assert(batch->start == bbo->bo->map);
449 bbo->length = batch->next - batch->start;
451 size_t new_size = bbo->bo->size;
452 while (new_size <= bbo->length + additional + batch_padding)
455 if (new_size == bbo->bo->size)
464 memcpy(new_bo->map, bbo->bo->map, bbo->length);
466 anv_bo_pool_free(&cmd_buffer->device->batch_bo_pool, bbo->bo);
468 bbo->bo = new_bo;
469 anv_batch_bo_continue(bbo, batch, batch_padding);
508 anv_batch_bo_destroy(struct anv_batch_bo *bbo,
511 anv_reloc_list_finish(&bbo->relocs, &cmd_buffer->vk.pool->alloc);
512 anv_bo_pool_free(&cmd_buffer->device->batch_bo_pool, bbo->bo);
513 vk_free(&cmd_buffer->vk.pool->alloc, bbo);
526 list_for_each_entry(struct anv_batch_bo, bbo, list, link) {
528 result = anv_batch_bo_clone(cmd_buffer, bbo, &new_bbo);
540 list_for_each_entry_safe(struct anv_batch_bo, bbo, new_list, link) {
541 list_del(&bbo->link);
542 anv_batch_bo_destroy(bbo, cmd_buffer);
601 struct anv_batch_bo *bbo)
614 emit_batch_buffer_start(cmd_buffer, bbo->bo, 0);
699 struct anv_batch_bo *bbo = anv_cmd_buffer_current_batch_bo(cmd_buffer);
701 anv_batch_bo_grow(cmd_buffer, bbo, &cmd_buffer->batch, 4096,
922 list_for_each_entry_safe(struct anv_batch_bo, bbo,
924 list_del(&bbo->link);
925 anv_batch_bo_destroy(bbo, cmd_buffer);
935 struct anv_batch_bo *bbo = anv_cmd_buffer_current_batch_bo(cmd_buffer);
936 list_del(&bbo->link);
937 anv_batch_bo_destroy(bbo, cmd_buffer);
1083 list_for_each_entry(struct anv_batch_bo, bbo, list, link) {
1088 *bbo_ptr = bbo;
1104 struct anv_batch_bo *bbo = anv_cmd_buffer_current_batch_bo(primary);
1106 anv_batch_bo_grow(primary, bbo, &primary->batch, length,
1558 struct anv_batch_bo **bbo;
1559 u_vector_foreach(bbo, &cmd_buffer->seen_bbos) {
1561 &(*bbo)->relocs, (*bbo)->bo, false);
1709 struct anv_batch_bo **bbo;
1710 u_vector_foreach(bbo, &cmd_buffer->seen_bbos) {
1711 adjust_relocations_to_state_pool(ss_pool, (*bbo)->bo, &(*bbo)->relocs,
1715 (*bbo)->bo, &(*bbo)->relocs, 0);
1905 struct anv_batch_bo **bbo;
1908 u_vector_foreach(bbo, &cmd_buffers[0]->seen_bbos)
1909 anv_cmd_buffer_process_relocs(cmd_buffers[0], &(*bbo)->relocs);
1917 u_vector_foreach(bbo, &cmd_buffers[i]->seen_bbos) {
1918 for (uint32_t l = 0; l < (*bbo)->length; l += CACHELINE_SIZE)
1919 __builtin_ia32_clflush((*bbo)->bo->map + l);