• Home
  • Raw
  • Download

Lines Matching refs:bo_gem

419 		drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo;  in drm_intel_gem_dump_validation_list()  local
421 if (bo_gem->relocs == NULL && bo_gem->softpin_target == NULL) { in drm_intel_gem_dump_validation_list()
422 DBG("%2d: %d %s(%s)\n", i, bo_gem->gem_handle, in drm_intel_gem_dump_validation_list()
423 bo_gem->kflags & EXEC_OBJECT_PINNED ? "*" : "", in drm_intel_gem_dump_validation_list()
424 bo_gem->name); in drm_intel_gem_dump_validation_list()
428 for (j = 0; j < bo_gem->reloc_count; j++) { in drm_intel_gem_dump_validation_list()
429 drm_intel_bo *target_bo = bo_gem->reloc_target_info[j].bo; in drm_intel_gem_dump_validation_list()
436 bo_gem->gem_handle, in drm_intel_gem_dump_validation_list()
437 bo_gem->kflags & EXEC_OBJECT_PINNED ? "*" : "", in drm_intel_gem_dump_validation_list()
438 bo_gem->name, in drm_intel_gem_dump_validation_list()
439 upper_32_bits(bo_gem->relocs[j].offset), in drm_intel_gem_dump_validation_list()
440 lower_32_bits(bo_gem->relocs[j].offset), in drm_intel_gem_dump_validation_list()
445 bo_gem->relocs[j].delta); in drm_intel_gem_dump_validation_list()
448 for (j = 0; j < bo_gem->softpin_target_count; j++) { in drm_intel_gem_dump_validation_list()
449 drm_intel_bo *target_bo = bo_gem->softpin_target[j]; in drm_intel_gem_dump_validation_list()
455 bo_gem->gem_handle, in drm_intel_gem_dump_validation_list()
456 bo_gem->kflags & EXEC_OBJECT_PINNED ? "*" : "", in drm_intel_gem_dump_validation_list()
457 bo_gem->name, in drm_intel_gem_dump_validation_list()
469 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_reference() local
471 atomic_inc(&bo_gem->refcount); in drm_intel_gem_bo_reference()
486 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_add_validate_buffer() local
489 if (bo_gem->validate_index != -1) in drm_intel_add_validate_buffer()
509 bo_gem->validate_index = index; in drm_intel_add_validate_buffer()
511 bufmgr_gem->exec_objects[index].handle = bo_gem->gem_handle; in drm_intel_add_validate_buffer()
512 bufmgr_gem->exec_objects[index].relocation_count = bo_gem->reloc_count; in drm_intel_add_validate_buffer()
513 bufmgr_gem->exec_objects[index].relocs_ptr = (uintptr_t) bo_gem->relocs; in drm_intel_add_validate_buffer()
524 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *)bo; in drm_intel_add_validate_buffer2() local
532 if (bo_gem->validate_index != -1) { in drm_intel_add_validate_buffer2()
533 bufmgr_gem->exec2_objects[bo_gem->validate_index].flags |= flags; in drm_intel_add_validate_buffer2()
554 bo_gem->validate_index = index; in drm_intel_add_validate_buffer2()
556 bufmgr_gem->exec2_objects[index].handle = bo_gem->gem_handle; in drm_intel_add_validate_buffer2()
557 bufmgr_gem->exec2_objects[index].relocation_count = bo_gem->reloc_count; in drm_intel_add_validate_buffer2()
558 bufmgr_gem->exec2_objects[index].relocs_ptr = (uintptr_t)bo_gem->relocs; in drm_intel_add_validate_buffer2()
561 bufmgr_gem->exec2_objects[index].flags = bo_gem->kflags | flags; in drm_intel_add_validate_buffer2()
573 drm_intel_bo_gem *bo_gem, in drm_intel_bo_gem_set_in_aperture_size() argument
578 assert(!bo_gem->used_as_reloc_target); in drm_intel_bo_gem_set_in_aperture_size()
586 size = bo_gem->bo.size; in drm_intel_bo_gem_set_in_aperture_size()
587 if (bufmgr_gem->gen < 4 && bo_gem->tiling_mode != I915_TILING_NONE) { in drm_intel_bo_gem_set_in_aperture_size()
605 bo_gem->reloc_tree_size = size + alignment; in drm_intel_bo_gem_set_in_aperture_size()
611 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_setup_reloc_list() local
618 bo_gem->relocs = malloc(max_relocs * in drm_intel_setup_reloc_list()
620 bo_gem->reloc_target_info = malloc(max_relocs * in drm_intel_setup_reloc_list()
622 if (bo_gem->relocs == NULL || bo_gem->reloc_target_info == NULL) { in drm_intel_setup_reloc_list()
623 bo_gem->has_error = true; in drm_intel_setup_reloc_list()
625 free (bo_gem->relocs); in drm_intel_setup_reloc_list()
626 bo_gem->relocs = NULL; in drm_intel_setup_reloc_list()
628 free (bo_gem->reloc_target_info); in drm_intel_setup_reloc_list()
629 bo_gem->reloc_target_info = NULL; in drm_intel_setup_reloc_list()
641 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_busy() local
645 if (bo_gem->reusable && bo_gem->idle) in drm_intel_gem_bo_busy()
649 busy.handle = bo_gem->gem_handle; in drm_intel_gem_bo_busy()
653 bo_gem->idle = !busy.busy; in drm_intel_gem_bo_busy()
662 drm_intel_bo_gem *bo_gem, int state) in drm_intel_gem_bo_madvise_internal() argument
667 madv.handle = bo_gem->gem_handle; in drm_intel_gem_bo_madvise_internal()
690 drm_intel_bo_gem *bo_gem; in drm_intel_gem_bo_cache_purge_bucket() local
692 bo_gem = DRMLISTENTRY(drm_intel_bo_gem, in drm_intel_gem_bo_cache_purge_bucket()
695 (bufmgr_gem, bo_gem, I915_MADV_DONTNEED)) in drm_intel_gem_bo_cache_purge_bucket()
698 DRMLISTDEL(&bo_gem->head); in drm_intel_gem_bo_cache_purge_bucket()
699 drm_intel_gem_bo_free(&bo_gem->bo); in drm_intel_gem_bo_cache_purge_bucket()
713 drm_intel_bo_gem *bo_gem; in drm_intel_gem_bo_alloc_internal() local
748 bo_gem = DRMLISTENTRY(drm_intel_bo_gem, in drm_intel_gem_bo_alloc_internal()
750 DRMLISTDEL(&bo_gem->head); in drm_intel_gem_bo_alloc_internal()
752 bo_gem->bo.align = alignment; in drm_intel_gem_bo_alloc_internal()
762 bo_gem = DRMLISTENTRY(drm_intel_bo_gem, in drm_intel_gem_bo_alloc_internal()
764 if (!drm_intel_gem_bo_busy(&bo_gem->bo)) { in drm_intel_gem_bo_alloc_internal()
766 DRMLISTDEL(&bo_gem->head); in drm_intel_gem_bo_alloc_internal()
772 (bufmgr_gem, bo_gem, I915_MADV_WILLNEED)) { in drm_intel_gem_bo_alloc_internal()
773 drm_intel_gem_bo_free(&bo_gem->bo); in drm_intel_gem_bo_alloc_internal()
779 if (drm_intel_gem_bo_set_tiling_internal(&bo_gem->bo, in drm_intel_gem_bo_alloc_internal()
782 drm_intel_gem_bo_free(&bo_gem->bo); in drm_intel_gem_bo_alloc_internal()
791 bo_gem = calloc(1, sizeof(*bo_gem)); in drm_intel_gem_bo_alloc_internal()
792 if (!bo_gem) in drm_intel_gem_bo_alloc_internal()
797 DRMINITLISTHEAD(&bo_gem->vma_list); in drm_intel_gem_bo_alloc_internal()
799 bo_gem->bo.size = bo_size; in drm_intel_gem_bo_alloc_internal()
808 free(bo_gem); in drm_intel_gem_bo_alloc_internal()
812 bo_gem->gem_handle = create.handle; in drm_intel_gem_bo_alloc_internal()
814 gem_handle, sizeof(bo_gem->gem_handle), in drm_intel_gem_bo_alloc_internal()
815 bo_gem); in drm_intel_gem_bo_alloc_internal()
817 bo_gem->bo.handle = bo_gem->gem_handle; in drm_intel_gem_bo_alloc_internal()
818 bo_gem->bo.bufmgr = bufmgr; in drm_intel_gem_bo_alloc_internal()
819 bo_gem->bo.align = alignment; in drm_intel_gem_bo_alloc_internal()
821 bo_gem->tiling_mode = I915_TILING_NONE; in drm_intel_gem_bo_alloc_internal()
822 bo_gem->swizzle_mode = I915_BIT_6_SWIZZLE_NONE; in drm_intel_gem_bo_alloc_internal()
823 bo_gem->stride = 0; in drm_intel_gem_bo_alloc_internal()
825 if (drm_intel_gem_bo_set_tiling_internal(&bo_gem->bo, in drm_intel_gem_bo_alloc_internal()
831 bo_gem->name = name; in drm_intel_gem_bo_alloc_internal()
832 atomic_set(&bo_gem->refcount, 1); in drm_intel_gem_bo_alloc_internal()
833 bo_gem->validate_index = -1; in drm_intel_gem_bo_alloc_internal()
834 bo_gem->reloc_tree_fences = 0; in drm_intel_gem_bo_alloc_internal()
835 bo_gem->used_as_reloc_target = false; in drm_intel_gem_bo_alloc_internal()
836 bo_gem->has_error = false; in drm_intel_gem_bo_alloc_internal()
837 bo_gem->reusable = true; in drm_intel_gem_bo_alloc_internal()
839 drm_intel_bo_gem_set_in_aperture_size(bufmgr_gem, bo_gem, alignment); in drm_intel_gem_bo_alloc_internal()
843 bo_gem->gem_handle, bo_gem->name, size); in drm_intel_gem_bo_alloc_internal()
845 return &bo_gem->bo; in drm_intel_gem_bo_alloc_internal()
848 drm_intel_gem_bo_free(&bo_gem->bo); in drm_intel_gem_bo_alloc_internal()
938 drm_intel_bo_gem *bo_gem; in drm_intel_gem_bo_alloc_userptr() local
948 bo_gem = calloc(1, sizeof(*bo_gem)); in drm_intel_gem_bo_alloc_userptr()
949 if (!bo_gem) in drm_intel_gem_bo_alloc_userptr()
952 atomic_set(&bo_gem->refcount, 1); in drm_intel_gem_bo_alloc_userptr()
953 DRMINITLISTHEAD(&bo_gem->vma_list); in drm_intel_gem_bo_alloc_userptr()
955 bo_gem->bo.size = size; in drm_intel_gem_bo_alloc_userptr()
969 free(bo_gem); in drm_intel_gem_bo_alloc_userptr()
975 bo_gem->gem_handle = userptr.handle; in drm_intel_gem_bo_alloc_userptr()
976 bo_gem->bo.handle = bo_gem->gem_handle; in drm_intel_gem_bo_alloc_userptr()
977 bo_gem->bo.bufmgr = bufmgr; in drm_intel_gem_bo_alloc_userptr()
978 bo_gem->is_userptr = true; in drm_intel_gem_bo_alloc_userptr()
979 bo_gem->bo.virtual = addr; in drm_intel_gem_bo_alloc_userptr()
981 bo_gem->user_virtual = addr; in drm_intel_gem_bo_alloc_userptr()
982 bo_gem->tiling_mode = I915_TILING_NONE; in drm_intel_gem_bo_alloc_userptr()
983 bo_gem->swizzle_mode = I915_BIT_6_SWIZZLE_NONE; in drm_intel_gem_bo_alloc_userptr()
984 bo_gem->stride = 0; in drm_intel_gem_bo_alloc_userptr()
987 gem_handle, sizeof(bo_gem->gem_handle), in drm_intel_gem_bo_alloc_userptr()
988 bo_gem); in drm_intel_gem_bo_alloc_userptr()
990 bo_gem->name = name; in drm_intel_gem_bo_alloc_userptr()
991 bo_gem->validate_index = -1; in drm_intel_gem_bo_alloc_userptr()
992 bo_gem->reloc_tree_fences = 0; in drm_intel_gem_bo_alloc_userptr()
993 bo_gem->used_as_reloc_target = false; in drm_intel_gem_bo_alloc_userptr()
994 bo_gem->has_error = false; in drm_intel_gem_bo_alloc_userptr()
995 bo_gem->reusable = false; in drm_intel_gem_bo_alloc_userptr()
997 drm_intel_bo_gem_set_in_aperture_size(bufmgr_gem, bo_gem, 0); in drm_intel_gem_bo_alloc_userptr()
1002 addr, bo_gem->gem_handle, bo_gem->name, in drm_intel_gem_bo_alloc_userptr()
1005 return &bo_gem->bo; in drm_intel_gem_bo_alloc_userptr()
1084 drm_intel_bo_gem *bo_gem; in drm_intel_bo_gem_create_from_name() local
1097 &handle, sizeof(handle), bo_gem); in drm_intel_bo_gem_create_from_name()
1098 if (bo_gem) { in drm_intel_bo_gem_create_from_name()
1099 drm_intel_gem_bo_reference(&bo_gem->bo); in drm_intel_bo_gem_create_from_name()
1111 bo_gem = NULL; in drm_intel_bo_gem_create_from_name()
1119 &open_arg.handle, sizeof(open_arg.handle), bo_gem); in drm_intel_bo_gem_create_from_name()
1120 if (bo_gem) { in drm_intel_bo_gem_create_from_name()
1121 drm_intel_gem_bo_reference(&bo_gem->bo); in drm_intel_bo_gem_create_from_name()
1125 bo_gem = calloc(1, sizeof(*bo_gem)); in drm_intel_bo_gem_create_from_name()
1126 if (!bo_gem) in drm_intel_bo_gem_create_from_name()
1129 atomic_set(&bo_gem->refcount, 1); in drm_intel_bo_gem_create_from_name()
1130 DRMINITLISTHEAD(&bo_gem->vma_list); in drm_intel_bo_gem_create_from_name()
1132 bo_gem->bo.size = open_arg.size; in drm_intel_bo_gem_create_from_name()
1133 bo_gem->bo.offset = 0; in drm_intel_bo_gem_create_from_name()
1134 bo_gem->bo.offset64 = 0; in drm_intel_bo_gem_create_from_name()
1135 bo_gem->bo.virtual = NULL; in drm_intel_bo_gem_create_from_name()
1136 bo_gem->bo.bufmgr = bufmgr; in drm_intel_bo_gem_create_from_name()
1137 bo_gem->name = name; in drm_intel_bo_gem_create_from_name()
1138 bo_gem->validate_index = -1; in drm_intel_bo_gem_create_from_name()
1139 bo_gem->gem_handle = open_arg.handle; in drm_intel_bo_gem_create_from_name()
1140 bo_gem->bo.handle = open_arg.handle; in drm_intel_bo_gem_create_from_name()
1141 bo_gem->global_name = handle; in drm_intel_bo_gem_create_from_name()
1142 bo_gem->reusable = false; in drm_intel_bo_gem_create_from_name()
1145 gem_handle, sizeof(bo_gem->gem_handle), bo_gem); in drm_intel_bo_gem_create_from_name()
1147 global_name, sizeof(bo_gem->global_name), bo_gem); in drm_intel_bo_gem_create_from_name()
1150 get_tiling.handle = bo_gem->gem_handle; in drm_intel_bo_gem_create_from_name()
1157 bo_gem->tiling_mode = get_tiling.tiling_mode; in drm_intel_bo_gem_create_from_name()
1158 bo_gem->swizzle_mode = get_tiling.swizzle_mode; in drm_intel_bo_gem_create_from_name()
1160 drm_intel_bo_gem_set_in_aperture_size(bufmgr_gem, bo_gem, 0); in drm_intel_bo_gem_create_from_name()
1161 DBG("bo_create_from_handle: %d (%s)\n", handle, bo_gem->name); in drm_intel_bo_gem_create_from_name()
1165 return &bo_gem->bo; in drm_intel_bo_gem_create_from_name()
1168 drm_intel_gem_bo_free(&bo_gem->bo); in drm_intel_bo_gem_create_from_name()
1177 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_free() local
1181 DRMLISTDEL(&bo_gem->vma_list); in drm_intel_gem_bo_free()
1182 if (bo_gem->mem_virtual) { in drm_intel_gem_bo_free()
1183 VG(VALGRIND_FREELIKE_BLOCK(bo_gem->mem_virtual, 0)); in drm_intel_gem_bo_free()
1184 drm_munmap(bo_gem->mem_virtual, bo_gem->bo.size); in drm_intel_gem_bo_free()
1187 if (bo_gem->wc_virtual) { in drm_intel_gem_bo_free()
1188 VG(VALGRIND_FREELIKE_BLOCK(bo_gem->wc_virtual, 0)); in drm_intel_gem_bo_free()
1189 drm_munmap(bo_gem->wc_virtual, bo_gem->bo.size); in drm_intel_gem_bo_free()
1192 if (bo_gem->gtt_virtual) { in drm_intel_gem_bo_free()
1193 drm_munmap(bo_gem->gtt_virtual, bo_gem->bo.size); in drm_intel_gem_bo_free()
1197 if (bo_gem->global_name) in drm_intel_gem_bo_free()
1198 HASH_DELETE(name_hh, bufmgr_gem->name_table, bo_gem); in drm_intel_gem_bo_free()
1199 HASH_DELETE(handle_hh, bufmgr_gem->handle_table, bo_gem); in drm_intel_gem_bo_free()
1203 close.handle = bo_gem->gem_handle; in drm_intel_gem_bo_free()
1207 bo_gem->gem_handle, bo_gem->name, strerror(errno)); in drm_intel_gem_bo_free()
1216 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_mark_mmaps_incoherent() local
1218 if (bo_gem->mem_virtual) in drm_intel_gem_bo_mark_mmaps_incoherent()
1219 VALGRIND_MAKE_MEM_NOACCESS(bo_gem->mem_virtual, bo->size); in drm_intel_gem_bo_mark_mmaps_incoherent()
1221 if (bo_gem->wc_virtual) in drm_intel_gem_bo_mark_mmaps_incoherent()
1222 VALGRIND_MAKE_MEM_NOACCESS(bo_gem->wc_virtual, bo->size); in drm_intel_gem_bo_mark_mmaps_incoherent()
1224 if (bo_gem->gtt_virtual) in drm_intel_gem_bo_mark_mmaps_incoherent()
1225 VALGRIND_MAKE_MEM_NOACCESS(bo_gem->gtt_virtual, bo->size); in drm_intel_gem_bo_mark_mmaps_incoherent()
1243 drm_intel_bo_gem *bo_gem; in drm_intel_gem_cleanup_bo_cache() local
1245 bo_gem = DRMLISTENTRY(drm_intel_bo_gem, in drm_intel_gem_cleanup_bo_cache()
1247 if (time - bo_gem->free_time <= 1) in drm_intel_gem_cleanup_bo_cache()
1250 DRMLISTDEL(&bo_gem->head); in drm_intel_gem_cleanup_bo_cache()
1252 drm_intel_gem_bo_free(&bo_gem->bo); in drm_intel_gem_cleanup_bo_cache()
1275 drm_intel_bo_gem *bo_gem; in drm_intel_gem_bo_purge_vma_cache() local
1277 bo_gem = DRMLISTENTRY(drm_intel_bo_gem, in drm_intel_gem_bo_purge_vma_cache()
1280 assert(bo_gem->map_count == 0); in drm_intel_gem_bo_purge_vma_cache()
1281 DRMLISTDELINIT(&bo_gem->vma_list); in drm_intel_gem_bo_purge_vma_cache()
1283 if (bo_gem->mem_virtual) { in drm_intel_gem_bo_purge_vma_cache()
1284 drm_munmap(bo_gem->mem_virtual, bo_gem->bo.size); in drm_intel_gem_bo_purge_vma_cache()
1285 bo_gem->mem_virtual = NULL; in drm_intel_gem_bo_purge_vma_cache()
1288 if (bo_gem->wc_virtual) { in drm_intel_gem_bo_purge_vma_cache()
1289 drm_munmap(bo_gem->wc_virtual, bo_gem->bo.size); in drm_intel_gem_bo_purge_vma_cache()
1290 bo_gem->wc_virtual = NULL; in drm_intel_gem_bo_purge_vma_cache()
1293 if (bo_gem->gtt_virtual) { in drm_intel_gem_bo_purge_vma_cache()
1294 drm_munmap(bo_gem->gtt_virtual, bo_gem->bo.size); in drm_intel_gem_bo_purge_vma_cache()
1295 bo_gem->gtt_virtual = NULL; in drm_intel_gem_bo_purge_vma_cache()
1302 drm_intel_bo_gem *bo_gem) in drm_intel_gem_bo_close_vma() argument
1305 DRMLISTADDTAIL(&bo_gem->vma_list, &bufmgr_gem->vma_cache); in drm_intel_gem_bo_close_vma()
1306 if (bo_gem->mem_virtual) in drm_intel_gem_bo_close_vma()
1308 if (bo_gem->wc_virtual) in drm_intel_gem_bo_close_vma()
1310 if (bo_gem->gtt_virtual) in drm_intel_gem_bo_close_vma()
1316 drm_intel_bo_gem *bo_gem) in drm_intel_gem_bo_open_vma() argument
1319 DRMLISTDEL(&bo_gem->vma_list); in drm_intel_gem_bo_open_vma()
1320 if (bo_gem->mem_virtual) in drm_intel_gem_bo_open_vma()
1322 if (bo_gem->wc_virtual) in drm_intel_gem_bo_open_vma()
1324 if (bo_gem->gtt_virtual) in drm_intel_gem_bo_open_vma()
1333 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_unreference_final() local
1338 for (i = 0; i < bo_gem->reloc_count; i++) { in drm_intel_gem_bo_unreference_final()
1339 if (bo_gem->reloc_target_info[i].bo != bo) { in drm_intel_gem_bo_unreference_final()
1340 drm_intel_gem_bo_unreference_locked_timed(bo_gem-> in drm_intel_gem_bo_unreference_final()
1345 for (i = 0; i < bo_gem->softpin_target_count; i++) in drm_intel_gem_bo_unreference_final()
1346 drm_intel_gem_bo_unreference_locked_timed(bo_gem->softpin_target[i], in drm_intel_gem_bo_unreference_final()
1348 bo_gem->kflags = 0; in drm_intel_gem_bo_unreference_final()
1349 bo_gem->reloc_count = 0; in drm_intel_gem_bo_unreference_final()
1350 bo_gem->used_as_reloc_target = false; in drm_intel_gem_bo_unreference_final()
1351 bo_gem->softpin_target_count = 0; in drm_intel_gem_bo_unreference_final()
1354 bo_gem->gem_handle, bo_gem->name); in drm_intel_gem_bo_unreference_final()
1357 if (bo_gem->reloc_target_info) { in drm_intel_gem_bo_unreference_final()
1358 free(bo_gem->reloc_target_info); in drm_intel_gem_bo_unreference_final()
1359 bo_gem->reloc_target_info = NULL; in drm_intel_gem_bo_unreference_final()
1361 if (bo_gem->relocs) { in drm_intel_gem_bo_unreference_final()
1362 free(bo_gem->relocs); in drm_intel_gem_bo_unreference_final()
1363 bo_gem->relocs = NULL; in drm_intel_gem_bo_unreference_final()
1365 if (bo_gem->softpin_target) { in drm_intel_gem_bo_unreference_final()
1366 free(bo_gem->softpin_target); in drm_intel_gem_bo_unreference_final()
1367 bo_gem->softpin_target = NULL; in drm_intel_gem_bo_unreference_final()
1368 bo_gem->softpin_target_size = 0; in drm_intel_gem_bo_unreference_final()
1372 if (bo_gem->map_count) { in drm_intel_gem_bo_unreference_final()
1373 DBG("bo freed with non-zero map-count %d\n", bo_gem->map_count); in drm_intel_gem_bo_unreference_final()
1374 bo_gem->map_count = 0; in drm_intel_gem_bo_unreference_final()
1375 drm_intel_gem_bo_close_vma(bufmgr_gem, bo_gem); in drm_intel_gem_bo_unreference_final()
1381 if (bufmgr_gem->bo_reuse && bo_gem->reusable && bucket != NULL && in drm_intel_gem_bo_unreference_final()
1382 drm_intel_gem_bo_madvise_internal(bufmgr_gem, bo_gem, in drm_intel_gem_bo_unreference_final()
1384 bo_gem->free_time = time; in drm_intel_gem_bo_unreference_final()
1386 bo_gem->name = NULL; in drm_intel_gem_bo_unreference_final()
1387 bo_gem->validate_index = -1; in drm_intel_gem_bo_unreference_final()
1389 DRMLISTADDTAIL(&bo_gem->head, &bucket->head); in drm_intel_gem_bo_unreference_final()
1398 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_unreference_locked_timed() local
1400 assert(atomic_read(&bo_gem->refcount) > 0); in drm_intel_gem_bo_unreference_locked_timed()
1401 if (atomic_dec_and_test(&bo_gem->refcount)) in drm_intel_gem_bo_unreference_locked_timed()
1407 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_unreference() local
1409 assert(atomic_read(&bo_gem->refcount) > 0); in drm_intel_gem_bo_unreference()
1411 if (atomic_add_unless(&bo_gem->refcount, -1, 1)) { in drm_intel_gem_bo_unreference()
1420 if (atomic_dec_and_test(&bo_gem->refcount)) { in drm_intel_gem_bo_unreference()
1432 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_map() local
1436 if (bo_gem->is_userptr) { in drm_intel_gem_bo_map()
1438 bo->virtual = bo_gem->user_virtual; in drm_intel_gem_bo_map()
1444 if (bo_gem->map_count++ == 0) in drm_intel_gem_bo_map()
1445 drm_intel_gem_bo_open_vma(bufmgr_gem, bo_gem); in drm_intel_gem_bo_map()
1447 if (!bo_gem->mem_virtual) { in drm_intel_gem_bo_map()
1451 bo_gem->gem_handle, bo_gem->name, bo_gem->map_count); in drm_intel_gem_bo_map()
1454 mmap_arg.handle = bo_gem->gem_handle; in drm_intel_gem_bo_map()
1462 __FILE__, __LINE__, bo_gem->gem_handle, in drm_intel_gem_bo_map()
1463 bo_gem->name, strerror(errno)); in drm_intel_gem_bo_map()
1464 if (--bo_gem->map_count == 0) in drm_intel_gem_bo_map()
1465 drm_intel_gem_bo_close_vma(bufmgr_gem, bo_gem); in drm_intel_gem_bo_map()
1470 bo_gem->mem_virtual = (void *)(uintptr_t) mmap_arg.addr_ptr; in drm_intel_gem_bo_map()
1472 DBG("bo_map: %d (%s) -> %p\n", bo_gem->gem_handle, bo_gem->name, in drm_intel_gem_bo_map()
1473 bo_gem->mem_virtual); in drm_intel_gem_bo_map()
1474 bo->virtual = bo_gem->mem_virtual; in drm_intel_gem_bo_map()
1477 set_domain.handle = bo_gem->gem_handle; in drm_intel_gem_bo_map()
1488 __FILE__, __LINE__, bo_gem->gem_handle, in drm_intel_gem_bo_map()
1493 bo_gem->mapped_cpu_write = true; in drm_intel_gem_bo_map()
1496 VG(VALGRIND_MAKE_MEM_DEFINED(bo_gem->mem_virtual, bo->size)); in drm_intel_gem_bo_map()
1506 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in map_gtt() local
1509 if (bo_gem->is_userptr) in map_gtt()
1512 if (bo_gem->map_count++ == 0) in map_gtt()
1513 drm_intel_gem_bo_open_vma(bufmgr_gem, bo_gem); in map_gtt()
1516 if (bo_gem->gtt_virtual == NULL) { in map_gtt()
1520 bo_gem->gem_handle, bo_gem->name, bo_gem->map_count); in map_gtt()
1523 mmap_arg.handle = bo_gem->gem_handle; in map_gtt()
1533 bo_gem->gem_handle, bo_gem->name, in map_gtt()
1535 if (--bo_gem->map_count == 0) in map_gtt()
1536 drm_intel_gem_bo_close_vma(bufmgr_gem, bo_gem); in map_gtt()
1541 bo_gem->gtt_virtual = drm_mmap(0, bo->size, PROT_READ | PROT_WRITE, in map_gtt()
1544 if (bo_gem->gtt_virtual == MAP_FAILED) { in map_gtt()
1545 bo_gem->gtt_virtual = NULL; in map_gtt()
1549 bo_gem->gem_handle, bo_gem->name, in map_gtt()
1551 if (--bo_gem->map_count == 0) in map_gtt()
1552 drm_intel_gem_bo_close_vma(bufmgr_gem, bo_gem); in map_gtt()
1557 bo->virtual = bo_gem->gtt_virtual; in map_gtt()
1559 DBG("bo_map_gtt: %d (%s) -> %p\n", bo_gem->gem_handle, bo_gem->name, in map_gtt()
1560 bo_gem->gtt_virtual); in map_gtt()
1569 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_map_gtt() local
1591 set_domain.handle = bo_gem->gem_handle; in drm_intel_gem_bo_map_gtt()
1599 __FILE__, __LINE__, bo_gem->gem_handle, in drm_intel_gem_bo_map_gtt()
1604 VG(VALGRIND_MAKE_MEM_DEFINED(bo_gem->gtt_virtual, bo->size)); in drm_intel_gem_bo_map_gtt()
1629 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_map_unsynchronized() local
1648 VG(VALGRIND_MAKE_MEM_DEFINED(bo_gem->gtt_virtual, bo->size)); in drm_intel_gem_bo_map_unsynchronized()
1659 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_unmap() local
1665 if (bo_gem->is_userptr) in drm_intel_gem_bo_unmap()
1672 if (bo_gem->map_count <= 0) { in drm_intel_gem_bo_unmap()
1681 if (bo_gem->mapped_cpu_write) { in drm_intel_gem_bo_unmap()
1690 sw_finish.handle = bo_gem->gem_handle; in drm_intel_gem_bo_unmap()
1696 bo_gem->mapped_cpu_write = false; in drm_intel_gem_bo_unmap()
1703 if (--bo_gem->map_count == 0) { in drm_intel_gem_bo_unmap()
1704 drm_intel_gem_bo_close_vma(bufmgr_gem, bo_gem); in drm_intel_gem_bo_unmap()
1724 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_subdata() local
1728 if (bo_gem->is_userptr) in drm_intel_gem_bo_subdata()
1732 pwrite.handle = bo_gem->gem_handle; in drm_intel_gem_bo_subdata()
1742 __FILE__, __LINE__, bo_gem->gem_handle, (int)offset, in drm_intel_gem_bo_subdata()
1779 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_get_subdata() local
1783 if (bo_gem->is_userptr) in drm_intel_gem_bo_get_subdata()
1787 pread.handle = bo_gem->gem_handle; in drm_intel_gem_bo_get_subdata()
1797 __FILE__, __LINE__, bo_gem->gem_handle, (int)offset, in drm_intel_gem_bo_get_subdata()
1842 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_wait() local
1858 wait.bo_handle = bo_gem->gem_handle; in drm_intel_gem_bo_wait()
1878 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_start_gtt_access() local
1883 set_domain.handle = bo_gem->gem_handle; in drm_intel_gem_bo_start_gtt_access()
1891 __FILE__, __LINE__, bo_gem->gem_handle, in drm_intel_gem_bo_start_gtt_access()
1914 drm_intel_bo_gem *bo_gem; in drm_intel_bufmgr_gem_destroy() local
1917 bo_gem = DRMLISTENTRY(drm_intel_bo_gem, in drm_intel_bufmgr_gem_destroy()
1919 DRMLISTDEL(&bo_gem->head); in drm_intel_bufmgr_gem_destroy()
1921 drm_intel_gem_bo_free(&bo_gem->bo); in drm_intel_bufmgr_gem_destroy()
1956 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in do_bo_emit_reloc() local
1960 if (bo_gem->has_error) in do_bo_emit_reloc()
1964 bo_gem->has_error = true; in do_bo_emit_reloc()
1977 if (bo_gem->relocs == NULL && drm_intel_setup_reloc_list(bo)) in do_bo_emit_reloc()
1981 assert(bo_gem->reloc_count < bufmgr_gem->max_relocs); in do_bo_emit_reloc()
1998 assert(!bo_gem->used_as_reloc_target); in do_bo_emit_reloc()
1999 if (target_bo_gem != bo_gem) { in do_bo_emit_reloc()
2001 bo_gem->reloc_tree_size += target_bo_gem->reloc_tree_size; in do_bo_emit_reloc()
2002 bo_gem->reloc_tree_fences += target_bo_gem->reloc_tree_fences; in do_bo_emit_reloc()
2005 bo_gem->reloc_target_info[bo_gem->reloc_count].bo = target_bo; in do_bo_emit_reloc()
2009 bo_gem->reloc_target_info[bo_gem->reloc_count].flags = in do_bo_emit_reloc()
2012 bo_gem->reloc_target_info[bo_gem->reloc_count].flags = 0; in do_bo_emit_reloc()
2014 bo_gem->relocs[bo_gem->reloc_count].offset = offset; in do_bo_emit_reloc()
2015 bo_gem->relocs[bo_gem->reloc_count].delta = target_offset; in do_bo_emit_reloc()
2016 bo_gem->relocs[bo_gem->reloc_count].target_handle = in do_bo_emit_reloc()
2018 bo_gem->relocs[bo_gem->reloc_count].read_domains = read_domains; in do_bo_emit_reloc()
2019 bo_gem->relocs[bo_gem->reloc_count].write_domain = write_domain; in do_bo_emit_reloc()
2020 bo_gem->relocs[bo_gem->reloc_count].presumed_offset = target_bo->offset64; in do_bo_emit_reloc()
2021 bo_gem->reloc_count++; in do_bo_emit_reloc()
2029 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_use_48b_address_range() local
2032 bo_gem->kflags |= EXEC_OBJECT_SUPPORTS_48B_ADDRESS; in drm_intel_gem_bo_use_48b_address_range()
2034 bo_gem->kflags &= ~EXEC_OBJECT_SUPPORTS_48B_ADDRESS; in drm_intel_gem_bo_use_48b_address_range()
2041 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_add_softpin_target() local
2043 if (bo_gem->has_error) in drm_intel_gem_bo_add_softpin_target()
2047 bo_gem->has_error = true; in drm_intel_gem_bo_add_softpin_target()
2053 if (target_bo_gem == bo_gem) in drm_intel_gem_bo_add_softpin_target()
2056 if (bo_gem->softpin_target_count == bo_gem->softpin_target_size) { in drm_intel_gem_bo_add_softpin_target()
2057 int new_size = bo_gem->softpin_target_size * 2; in drm_intel_gem_bo_add_softpin_target()
2061 bo_gem->softpin_target = realloc(bo_gem->softpin_target, new_size * in drm_intel_gem_bo_add_softpin_target()
2063 if (!bo_gem->softpin_target) in drm_intel_gem_bo_add_softpin_target()
2066 bo_gem->softpin_target_size = new_size; in drm_intel_gem_bo_add_softpin_target()
2068 bo_gem->softpin_target[bo_gem->softpin_target_count] = target_bo; in drm_intel_gem_bo_add_softpin_target()
2070 bo_gem->softpin_target_count++; in drm_intel_gem_bo_add_softpin_target()
2104 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_get_reloc_count() local
2106 return bo_gem->reloc_count; in drm_intel_gem_bo_get_reloc_count()
2128 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_clear_relocs() local
2134 assert(bo_gem->reloc_count >= start); in drm_intel_gem_bo_clear_relocs()
2139 for (i = start; i < bo_gem->reloc_count; i++) { in drm_intel_gem_bo_clear_relocs()
2140 drm_intel_bo_gem *target_bo_gem = (drm_intel_bo_gem *) bo_gem->reloc_target_info[i].bo; in drm_intel_gem_bo_clear_relocs()
2142 bo_gem->reloc_tree_fences -= target_bo_gem->reloc_tree_fences; in drm_intel_gem_bo_clear_relocs()
2147 bo_gem->reloc_count = start; in drm_intel_gem_bo_clear_relocs()
2149 for (i = 0; i < bo_gem->softpin_target_count; i++) { in drm_intel_gem_bo_clear_relocs()
2150 drm_intel_bo_gem *target_bo_gem = (drm_intel_bo_gem *) bo_gem->softpin_target[i]; in drm_intel_gem_bo_clear_relocs()
2153 bo_gem->softpin_target_count = 0; in drm_intel_gem_bo_clear_relocs()
2167 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_process_reloc() local
2170 if (bo_gem->relocs == NULL) in drm_intel_gem_bo_process_reloc()
2173 for (i = 0; i < bo_gem->reloc_count; i++) { in drm_intel_gem_bo_process_reloc()
2174 drm_intel_bo *target_bo = bo_gem->reloc_target_info[i].bo; in drm_intel_gem_bo_process_reloc()
2192 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *)bo; in drm_intel_gem_bo_process_reloc2() local
2195 if (bo_gem->relocs == NULL && bo_gem->softpin_target == NULL) in drm_intel_gem_bo_process_reloc2()
2198 for (i = 0; i < bo_gem->reloc_count; i++) { in drm_intel_gem_bo_process_reloc2()
2199 drm_intel_bo *target_bo = bo_gem->reloc_target_info[i].bo; in drm_intel_gem_bo_process_reloc2()
2210 need_fence = (bo_gem->reloc_target_info[i].flags & in drm_intel_gem_bo_process_reloc2()
2217 for (i = 0; i < bo_gem->softpin_target_count; i++) { in drm_intel_gem_bo_process_reloc2()
2218 drm_intel_bo *target_bo = bo_gem->softpin_target[i]; in drm_intel_gem_bo_process_reloc2()
2237 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_update_buffer_offsets() local
2242 bo_gem->gem_handle, bo_gem->name, in drm_intel_update_buffer_offsets()
2260 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *)bo; in drm_intel_update_buffer_offsets2() local
2267 assert(!(bo_gem->kflags & EXEC_OBJECT_PINNED)); in drm_intel_update_buffer_offsets2()
2269 bo_gem->gem_handle, bo_gem->name, in drm_intel_update_buffer_offsets2()
2341 drm_intel_bo_gem *bo_gem = to_bo_gem(bufmgr_gem->exec_bos[i]); in drm_intel_gem_bo_exec() local
2343 bo_gem->idle = false; in drm_intel_gem_bo_exec()
2346 bo_gem->validate_index = -1; in drm_intel_gem_bo_exec()
2450 drm_intel_bo_gem *bo_gem = to_bo_gem(bufmgr_gem->exec_bos[i]); in do_exec2() local
2452 bo_gem->idle = false; in do_exec2()
2455 bo_gem->validate_index = -1; in do_exec2()
2504 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_pin() local
2509 pin.handle = bo_gem->gem_handle; in drm_intel_gem_bo_pin()
2527 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_unpin() local
2532 unpin.handle = bo_gem->gem_handle; in drm_intel_gem_bo_unpin()
2547 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_set_tiling_internal() local
2551 if (bo_gem->global_name == 0 && in drm_intel_gem_bo_set_tiling_internal()
2552 tiling_mode == bo_gem->tiling_mode && in drm_intel_gem_bo_set_tiling_internal()
2553 stride == bo_gem->stride) in drm_intel_gem_bo_set_tiling_internal()
2562 set_tiling.handle = bo_gem->gem_handle; in drm_intel_gem_bo_set_tiling_internal()
2573 bo_gem->tiling_mode = set_tiling.tiling_mode; in drm_intel_gem_bo_set_tiling_internal()
2574 bo_gem->swizzle_mode = set_tiling.swizzle_mode; in drm_intel_gem_bo_set_tiling_internal()
2575 bo_gem->stride = set_tiling.stride; in drm_intel_gem_bo_set_tiling_internal()
2584 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_set_tiling() local
2590 if (bo_gem->is_userptr) in drm_intel_gem_bo_set_tiling()
2601 drm_intel_bo_gem_set_in_aperture_size(bufmgr_gem, bo_gem, 0); in drm_intel_gem_bo_set_tiling()
2603 *tiling_mode = bo_gem->tiling_mode; in drm_intel_gem_bo_set_tiling()
2611 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_get_tiling() local
2613 *tiling_mode = bo_gem->tiling_mode; in drm_intel_gem_bo_get_tiling()
2614 *swizzle_mode = bo_gem->swizzle_mode; in drm_intel_gem_bo_get_tiling()
2621 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_set_softpin_offset() local
2625 bo_gem->kflags |= EXEC_OBJECT_PINNED; in drm_intel_gem_bo_set_softpin_offset()
2636 drm_intel_bo_gem *bo_gem; in drm_intel_bo_gem_create_from_prime() local
2653 &handle, sizeof(handle), bo_gem); in drm_intel_bo_gem_create_from_prime()
2654 if (bo_gem) { in drm_intel_bo_gem_create_from_prime()
2655 drm_intel_gem_bo_reference(&bo_gem->bo); in drm_intel_bo_gem_create_from_prime()
2659 bo_gem = calloc(1, sizeof(*bo_gem)); in drm_intel_bo_gem_create_from_prime()
2660 if (!bo_gem) in drm_intel_bo_gem_create_from_prime()
2663 atomic_set(&bo_gem->refcount, 1); in drm_intel_bo_gem_create_from_prime()
2664 DRMINITLISTHEAD(&bo_gem->vma_list); in drm_intel_bo_gem_create_from_prime()
2673 bo_gem->bo.size = ret; in drm_intel_bo_gem_create_from_prime()
2675 bo_gem->bo.size = size; in drm_intel_bo_gem_create_from_prime()
2677 bo_gem->bo.handle = handle; in drm_intel_bo_gem_create_from_prime()
2678 bo_gem->bo.bufmgr = bufmgr; in drm_intel_bo_gem_create_from_prime()
2680 bo_gem->gem_handle = handle; in drm_intel_bo_gem_create_from_prime()
2682 gem_handle, sizeof(bo_gem->gem_handle), bo_gem); in drm_intel_bo_gem_create_from_prime()
2684 bo_gem->name = "prime"; in drm_intel_bo_gem_create_from_prime()
2685 bo_gem->validate_index = -1; in drm_intel_bo_gem_create_from_prime()
2686 bo_gem->reloc_tree_fences = 0; in drm_intel_bo_gem_create_from_prime()
2687 bo_gem->used_as_reloc_target = false; in drm_intel_bo_gem_create_from_prime()
2688 bo_gem->has_error = false; in drm_intel_bo_gem_create_from_prime()
2689 bo_gem->reusable = false; in drm_intel_bo_gem_create_from_prime()
2692 get_tiling.handle = bo_gem->gem_handle; in drm_intel_bo_gem_create_from_prime()
2698 bo_gem->tiling_mode = get_tiling.tiling_mode; in drm_intel_bo_gem_create_from_prime()
2699 bo_gem->swizzle_mode = get_tiling.swizzle_mode; in drm_intel_bo_gem_create_from_prime()
2701 drm_intel_bo_gem_set_in_aperture_size(bufmgr_gem, bo_gem, 0); in drm_intel_bo_gem_create_from_prime()
2705 return &bo_gem->bo; in drm_intel_bo_gem_create_from_prime()
2708 drm_intel_gem_bo_free(&bo_gem->bo); in drm_intel_bo_gem_create_from_prime()
2717 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_bo_gem_export_to_prime() local
2719 if (drmPrimeHandleToFD(bufmgr_gem->fd, bo_gem->gem_handle, in drm_intel_bo_gem_export_to_prime()
2723 bo_gem->reusable = false; in drm_intel_bo_gem_export_to_prime()
2732 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_flink() local
2734 if (!bo_gem->global_name) { in drm_intel_gem_bo_flink()
2738 flink.handle = bo_gem->gem_handle; in drm_intel_gem_bo_flink()
2743 if (!bo_gem->global_name) { in drm_intel_gem_bo_flink()
2744 bo_gem->global_name = flink.name; in drm_intel_gem_bo_flink()
2745 bo_gem->reusable = false; in drm_intel_gem_bo_flink()
2748 global_name, sizeof(bo_gem->global_name), in drm_intel_gem_bo_flink()
2749 bo_gem); in drm_intel_gem_bo_flink()
2754 *name = bo_gem->global_name; in drm_intel_gem_bo_flink()
2790 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_disable_implicit_sync() local
2792 bo_gem->kflags |= EXEC_OBJECT_ASYNC; in drm_intel_gem_bo_disable_implicit_sync()
2809 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_enable_implicit_sync() local
2811 bo_gem->kflags &= ~EXEC_OBJECT_ASYNC; in drm_intel_gem_bo_enable_implicit_sync()
2849 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_get_aperture_space() local
2853 if (bo == NULL || bo_gem->included_in_check_aperture) in drm_intel_gem_bo_get_aperture_space()
2857 bo_gem->included_in_check_aperture = true; in drm_intel_gem_bo_get_aperture_space()
2859 for (i = 0; i < bo_gem->reloc_count; i++) in drm_intel_gem_bo_get_aperture_space()
2861 drm_intel_gem_bo_get_aperture_space(bo_gem-> in drm_intel_gem_bo_get_aperture_space()
2882 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo_array[i]; in drm_intel_gem_total_fences() local
2884 if (bo_gem == NULL) in drm_intel_gem_total_fences()
2887 total += bo_gem->reloc_tree_fences; in drm_intel_gem_total_fences()
2899 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_clear_aperture_space_flag() local
2902 if (bo == NULL || !bo_gem->included_in_check_aperture) in drm_intel_gem_bo_clear_aperture_space_flag()
2905 bo_gem->included_in_check_aperture = false; in drm_intel_gem_bo_clear_aperture_space_flag()
2907 for (i = 0; i < bo_gem->reloc_count; i++) in drm_intel_gem_bo_clear_aperture_space_flag()
2908 drm_intel_gem_bo_clear_aperture_space_flag(bo_gem-> in drm_intel_gem_bo_clear_aperture_space_flag()
2923 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo_array[i]; in drm_intel_gem_estimate_batch_space() local
2924 if (bo_gem != NULL) in drm_intel_gem_estimate_batch_space()
2925 total += bo_gem->reloc_tree_size; in drm_intel_gem_estimate_batch_space()
2953 drm_intel_bo_gem *bo_gem = in drm_intel_gem_compute_batch_space() local
2955 bo_gem->reloc_tree_size = total; in drm_intel_gem_compute_batch_space()
3020 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_disable_reuse() local
3022 bo_gem->reusable = false; in drm_intel_gem_bo_disable_reuse()
3029 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_is_reusable() local
3031 return bo_gem->reusable; in drm_intel_gem_bo_is_reusable()
3037 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in _drm_intel_gem_bo_references() local
3040 for (i = 0; i < bo_gem->reloc_count; i++) { in _drm_intel_gem_bo_references()
3041 if (bo_gem->reloc_target_info[i].bo == target_bo) in _drm_intel_gem_bo_references()
3043 if (bo == bo_gem->reloc_target_info[i].bo) in _drm_intel_gem_bo_references()
3045 if (_drm_intel_gem_bo_references(bo_gem->reloc_target_info[i].bo, in _drm_intel_gem_bo_references()
3050 for (i = 0; i< bo_gem->softpin_target_count; i++) { in _drm_intel_gem_bo_references()
3051 if (bo_gem->softpin_target[i] == target_bo) in _drm_intel_gem_bo_references()
3053 if (_drm_intel_gem_bo_references(bo_gem->softpin_target[i], target_bo)) in _drm_intel_gem_bo_references()
3460 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_map__gtt() local
3462 if (bo_gem->gtt_virtual) in drm_intel_gem_bo_map__gtt()
3463 return bo_gem->gtt_virtual; in drm_intel_gem_bo_map__gtt()
3465 if (bo_gem->is_userptr) in drm_intel_gem_bo_map__gtt()
3469 if (bo_gem->gtt_virtual == NULL) { in drm_intel_gem_bo_map__gtt()
3474 bo_gem->gem_handle, bo_gem->name, bo_gem->map_count); in drm_intel_gem_bo_map__gtt()
3476 if (bo_gem->map_count++ == 0) in drm_intel_gem_bo_map__gtt()
3477 drm_intel_gem_bo_open_vma(bufmgr_gem, bo_gem); in drm_intel_gem_bo_map__gtt()
3480 mmap_arg.handle = bo_gem->gem_handle; in drm_intel_gem_bo_map__gtt()
3493 if (--bo_gem->map_count == 0) in drm_intel_gem_bo_map__gtt()
3494 drm_intel_gem_bo_close_vma(bufmgr_gem, bo_gem); in drm_intel_gem_bo_map__gtt()
3498 bo_gem->gtt_virtual = ptr; in drm_intel_gem_bo_map__gtt()
3502 return bo_gem->gtt_virtual; in drm_intel_gem_bo_map__gtt()
3508 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_map__cpu() local
3510 if (bo_gem->mem_virtual) in drm_intel_gem_bo_map__cpu()
3511 return bo_gem->mem_virtual; in drm_intel_gem_bo_map__cpu()
3513 if (bo_gem->is_userptr) { in drm_intel_gem_bo_map__cpu()
3515 return bo_gem->user_virtual; in drm_intel_gem_bo_map__cpu()
3519 if (!bo_gem->mem_virtual) { in drm_intel_gem_bo_map__cpu()
3522 if (bo_gem->map_count++ == 0) in drm_intel_gem_bo_map__cpu()
3523 drm_intel_gem_bo_open_vma(bufmgr_gem, bo_gem); in drm_intel_gem_bo_map__cpu()
3526 bo_gem->gem_handle, bo_gem->name, bo_gem->map_count); in drm_intel_gem_bo_map__cpu()
3529 mmap_arg.handle = bo_gem->gem_handle; in drm_intel_gem_bo_map__cpu()
3535 __FILE__, __LINE__, bo_gem->gem_handle, in drm_intel_gem_bo_map__cpu()
3536 bo_gem->name, strerror(errno)); in drm_intel_gem_bo_map__cpu()
3537 if (--bo_gem->map_count == 0) in drm_intel_gem_bo_map__cpu()
3538 drm_intel_gem_bo_close_vma(bufmgr_gem, bo_gem); in drm_intel_gem_bo_map__cpu()
3541 bo_gem->mem_virtual = (void *)(uintptr_t) mmap_arg.addr_ptr; in drm_intel_gem_bo_map__cpu()
3546 return bo_gem->mem_virtual; in drm_intel_gem_bo_map__cpu()
3552 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_map__wc() local
3554 if (bo_gem->wc_virtual) in drm_intel_gem_bo_map__wc()
3555 return bo_gem->wc_virtual; in drm_intel_gem_bo_map__wc()
3557 if (bo_gem->is_userptr) in drm_intel_gem_bo_map__wc()
3561 if (!bo_gem->wc_virtual) { in drm_intel_gem_bo_map__wc()
3564 if (bo_gem->map_count++ == 0) in drm_intel_gem_bo_map__wc()
3565 drm_intel_gem_bo_open_vma(bufmgr_gem, bo_gem); in drm_intel_gem_bo_map__wc()
3568 bo_gem->gem_handle, bo_gem->name, bo_gem->map_count); in drm_intel_gem_bo_map__wc()
3571 mmap_arg.handle = bo_gem->gem_handle; in drm_intel_gem_bo_map__wc()
3578 __FILE__, __LINE__, bo_gem->gem_handle, in drm_intel_gem_bo_map__wc()
3579 bo_gem->name, strerror(errno)); in drm_intel_gem_bo_map__wc()
3580 if (--bo_gem->map_count == 0) in drm_intel_gem_bo_map__wc()
3581 drm_intel_gem_bo_close_vma(bufmgr_gem, bo_gem); in drm_intel_gem_bo_map__wc()
3584 bo_gem->wc_virtual = (void *)(uintptr_t) mmap_arg.addr_ptr; in drm_intel_gem_bo_map__wc()
3589 return bo_gem->wc_virtual; in drm_intel_gem_bo_map__wc()