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()
1106 drm_intel_bo_gem *bo_gem; in drm_intel_bo_gem_create_from_name() local
1118 &handle, sizeof(handle), bo_gem); in drm_intel_bo_gem_create_from_name()
1119 if (bo_gem) { in drm_intel_bo_gem_create_from_name()
1120 drm_intel_gem_bo_reference(&bo_gem->bo); in drm_intel_bo_gem_create_from_name()
1132 bo_gem = NULL; in drm_intel_bo_gem_create_from_name()
1140 &open_arg.handle, sizeof(open_arg.handle), bo_gem); in drm_intel_bo_gem_create_from_name()
1141 if (bo_gem) { in drm_intel_bo_gem_create_from_name()
1142 drm_intel_gem_bo_reference(&bo_gem->bo); in drm_intel_bo_gem_create_from_name()
1146 bo_gem = calloc(1, sizeof(*bo_gem)); in drm_intel_bo_gem_create_from_name()
1147 if (!bo_gem) in drm_intel_bo_gem_create_from_name()
1150 atomic_set(&bo_gem->refcount, 1); in drm_intel_bo_gem_create_from_name()
1151 DRMINITLISTHEAD(&bo_gem->vma_list); in drm_intel_bo_gem_create_from_name()
1153 bo_gem->bo.size = open_arg.size; in drm_intel_bo_gem_create_from_name()
1154 bo_gem->bo.offset = 0; in drm_intel_bo_gem_create_from_name()
1155 bo_gem->bo.offset64 = 0; in drm_intel_bo_gem_create_from_name()
1156 bo_gem->bo.virtual = NULL; in drm_intel_bo_gem_create_from_name()
1157 bo_gem->bo.bufmgr = bufmgr; in drm_intel_bo_gem_create_from_name()
1158 bo_gem->name = name; in drm_intel_bo_gem_create_from_name()
1159 bo_gem->validate_index = -1; in drm_intel_bo_gem_create_from_name()
1160 bo_gem->gem_handle = open_arg.handle; in drm_intel_bo_gem_create_from_name()
1161 bo_gem->bo.handle = open_arg.handle; in drm_intel_bo_gem_create_from_name()
1162 bo_gem->global_name = handle; in drm_intel_bo_gem_create_from_name()
1163 bo_gem->reusable = false; in drm_intel_bo_gem_create_from_name()
1166 gem_handle, sizeof(bo_gem->gem_handle), bo_gem); in drm_intel_bo_gem_create_from_name()
1168 global_name, sizeof(bo_gem->global_name), bo_gem); in drm_intel_bo_gem_create_from_name()
1170 ret = get_tiling_mode(bufmgr_gem, bo_gem->gem_handle, in drm_intel_bo_gem_create_from_name()
1171 &bo_gem->tiling_mode, &bo_gem->swizzle_mode); in drm_intel_bo_gem_create_from_name()
1176 drm_intel_bo_gem_set_in_aperture_size(bufmgr_gem, bo_gem, 0); in drm_intel_bo_gem_create_from_name()
1177 DBG("bo_create_from_handle: %d (%s)\n", handle, bo_gem->name); in drm_intel_bo_gem_create_from_name()
1181 return &bo_gem->bo; in drm_intel_bo_gem_create_from_name()
1184 drm_intel_gem_bo_free(&bo_gem->bo); in drm_intel_bo_gem_create_from_name()
1193 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_free() local
1197 DRMLISTDEL(&bo_gem->vma_list); in drm_intel_gem_bo_free()
1198 if (bo_gem->mem_virtual) { in drm_intel_gem_bo_free()
1199 VG(VALGRIND_FREELIKE_BLOCK(bo_gem->mem_virtual, 0)); in drm_intel_gem_bo_free()
1200 drm_munmap(bo_gem->mem_virtual, bo_gem->bo.size); in drm_intel_gem_bo_free()
1203 if (bo_gem->wc_virtual) { in drm_intel_gem_bo_free()
1204 VG(VALGRIND_FREELIKE_BLOCK(bo_gem->wc_virtual, 0)); in drm_intel_gem_bo_free()
1205 drm_munmap(bo_gem->wc_virtual, bo_gem->bo.size); in drm_intel_gem_bo_free()
1208 if (bo_gem->gtt_virtual) { in drm_intel_gem_bo_free()
1209 drm_munmap(bo_gem->gtt_virtual, bo_gem->bo.size); in drm_intel_gem_bo_free()
1213 if (bo_gem->global_name) in drm_intel_gem_bo_free()
1214 HASH_DELETE(name_hh, bufmgr_gem->name_table, bo_gem); in drm_intel_gem_bo_free()
1215 HASH_DELETE(handle_hh, bufmgr_gem->handle_table, bo_gem); in drm_intel_gem_bo_free()
1219 close.handle = bo_gem->gem_handle; in drm_intel_gem_bo_free()
1223 bo_gem->gem_handle, bo_gem->name, strerror(errno)); in drm_intel_gem_bo_free()
1232 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_mark_mmaps_incoherent() local
1234 if (bo_gem->mem_virtual) in drm_intel_gem_bo_mark_mmaps_incoherent()
1235 VALGRIND_MAKE_MEM_NOACCESS(bo_gem->mem_virtual, bo->size); in drm_intel_gem_bo_mark_mmaps_incoherent()
1237 if (bo_gem->wc_virtual) in drm_intel_gem_bo_mark_mmaps_incoherent()
1238 VALGRIND_MAKE_MEM_NOACCESS(bo_gem->wc_virtual, bo->size); in drm_intel_gem_bo_mark_mmaps_incoherent()
1240 if (bo_gem->gtt_virtual) in drm_intel_gem_bo_mark_mmaps_incoherent()
1241 VALGRIND_MAKE_MEM_NOACCESS(bo_gem->gtt_virtual, bo->size); in drm_intel_gem_bo_mark_mmaps_incoherent()
1259 drm_intel_bo_gem *bo_gem; in drm_intel_gem_cleanup_bo_cache() local
1261 bo_gem = DRMLISTENTRY(drm_intel_bo_gem, in drm_intel_gem_cleanup_bo_cache()
1263 if (time - bo_gem->free_time <= 1) in drm_intel_gem_cleanup_bo_cache()
1266 DRMLISTDEL(&bo_gem->head); in drm_intel_gem_cleanup_bo_cache()
1268 drm_intel_gem_bo_free(&bo_gem->bo); in drm_intel_gem_cleanup_bo_cache()
1291 drm_intel_bo_gem *bo_gem; in drm_intel_gem_bo_purge_vma_cache() local
1293 bo_gem = DRMLISTENTRY(drm_intel_bo_gem, in drm_intel_gem_bo_purge_vma_cache()
1296 assert(bo_gem->map_count == 0); in drm_intel_gem_bo_purge_vma_cache()
1297 DRMLISTDELINIT(&bo_gem->vma_list); in drm_intel_gem_bo_purge_vma_cache()
1299 if (bo_gem->mem_virtual) { in drm_intel_gem_bo_purge_vma_cache()
1300 drm_munmap(bo_gem->mem_virtual, bo_gem->bo.size); in drm_intel_gem_bo_purge_vma_cache()
1301 bo_gem->mem_virtual = NULL; in drm_intel_gem_bo_purge_vma_cache()
1304 if (bo_gem->wc_virtual) { in drm_intel_gem_bo_purge_vma_cache()
1305 drm_munmap(bo_gem->wc_virtual, bo_gem->bo.size); in drm_intel_gem_bo_purge_vma_cache()
1306 bo_gem->wc_virtual = NULL; in drm_intel_gem_bo_purge_vma_cache()
1309 if (bo_gem->gtt_virtual) { in drm_intel_gem_bo_purge_vma_cache()
1310 drm_munmap(bo_gem->gtt_virtual, bo_gem->bo.size); in drm_intel_gem_bo_purge_vma_cache()
1311 bo_gem->gtt_virtual = NULL; in drm_intel_gem_bo_purge_vma_cache()
1318 drm_intel_bo_gem *bo_gem) in drm_intel_gem_bo_close_vma() argument
1321 DRMLISTADDTAIL(&bo_gem->vma_list, &bufmgr_gem->vma_cache); in drm_intel_gem_bo_close_vma()
1322 if (bo_gem->mem_virtual) in drm_intel_gem_bo_close_vma()
1324 if (bo_gem->wc_virtual) in drm_intel_gem_bo_close_vma()
1326 if (bo_gem->gtt_virtual) in drm_intel_gem_bo_close_vma()
1332 drm_intel_bo_gem *bo_gem) in drm_intel_gem_bo_open_vma() argument
1335 DRMLISTDEL(&bo_gem->vma_list); in drm_intel_gem_bo_open_vma()
1336 if (bo_gem->mem_virtual) in drm_intel_gem_bo_open_vma()
1338 if (bo_gem->wc_virtual) in drm_intel_gem_bo_open_vma()
1340 if (bo_gem->gtt_virtual) in drm_intel_gem_bo_open_vma()
1349 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_unreference_final() local
1354 for (i = 0; i < bo_gem->reloc_count; i++) { in drm_intel_gem_bo_unreference_final()
1355 if (bo_gem->reloc_target_info[i].bo != bo) { in drm_intel_gem_bo_unreference_final()
1356 drm_intel_gem_bo_unreference_locked_timed(bo_gem-> in drm_intel_gem_bo_unreference_final()
1361 for (i = 0; i < bo_gem->softpin_target_count; i++) in drm_intel_gem_bo_unreference_final()
1362 drm_intel_gem_bo_unreference_locked_timed(bo_gem->softpin_target[i], in drm_intel_gem_bo_unreference_final()
1364 bo_gem->kflags = 0; in drm_intel_gem_bo_unreference_final()
1365 bo_gem->reloc_count = 0; in drm_intel_gem_bo_unreference_final()
1366 bo_gem->used_as_reloc_target = false; in drm_intel_gem_bo_unreference_final()
1367 bo_gem->softpin_target_count = 0; in drm_intel_gem_bo_unreference_final()
1370 bo_gem->gem_handle, bo_gem->name); in drm_intel_gem_bo_unreference_final()
1373 if (bo_gem->reloc_target_info) { in drm_intel_gem_bo_unreference_final()
1374 free(bo_gem->reloc_target_info); in drm_intel_gem_bo_unreference_final()
1375 bo_gem->reloc_target_info = NULL; in drm_intel_gem_bo_unreference_final()
1377 if (bo_gem->relocs) { in drm_intel_gem_bo_unreference_final()
1378 free(bo_gem->relocs); in drm_intel_gem_bo_unreference_final()
1379 bo_gem->relocs = NULL; in drm_intel_gem_bo_unreference_final()
1381 if (bo_gem->softpin_target) { in drm_intel_gem_bo_unreference_final()
1382 free(bo_gem->softpin_target); in drm_intel_gem_bo_unreference_final()
1383 bo_gem->softpin_target = NULL; in drm_intel_gem_bo_unreference_final()
1384 bo_gem->softpin_target_size = 0; in drm_intel_gem_bo_unreference_final()
1388 if (bo_gem->map_count) { in drm_intel_gem_bo_unreference_final()
1389 DBG("bo freed with non-zero map-count %d\n", bo_gem->map_count); in drm_intel_gem_bo_unreference_final()
1390 bo_gem->map_count = 0; in drm_intel_gem_bo_unreference_final()
1391 drm_intel_gem_bo_close_vma(bufmgr_gem, bo_gem); in drm_intel_gem_bo_unreference_final()
1397 if (bufmgr_gem->bo_reuse && bo_gem->reusable && bucket != NULL && in drm_intel_gem_bo_unreference_final()
1398 drm_intel_gem_bo_madvise_internal(bufmgr_gem, bo_gem, in drm_intel_gem_bo_unreference_final()
1400 bo_gem->free_time = time; in drm_intel_gem_bo_unreference_final()
1402 bo_gem->name = NULL; in drm_intel_gem_bo_unreference_final()
1403 bo_gem->validate_index = -1; in drm_intel_gem_bo_unreference_final()
1405 DRMLISTADDTAIL(&bo_gem->head, &bucket->head); in drm_intel_gem_bo_unreference_final()
1414 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_unreference_locked_timed() local
1416 assert(atomic_read(&bo_gem->refcount) > 0); in drm_intel_gem_bo_unreference_locked_timed()
1417 if (atomic_dec_and_test(&bo_gem->refcount)) in drm_intel_gem_bo_unreference_locked_timed()
1423 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_unreference() local
1425 assert(atomic_read(&bo_gem->refcount) > 0); in drm_intel_gem_bo_unreference()
1427 if (atomic_add_unless(&bo_gem->refcount, -1, 1)) { in drm_intel_gem_bo_unreference()
1436 if (atomic_dec_and_test(&bo_gem->refcount)) { in drm_intel_gem_bo_unreference()
1448 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_map() local
1452 if (bo_gem->is_userptr) { in drm_intel_gem_bo_map()
1454 bo->virtual = bo_gem->user_virtual; in drm_intel_gem_bo_map()
1460 if (bo_gem->map_count++ == 0) in drm_intel_gem_bo_map()
1461 drm_intel_gem_bo_open_vma(bufmgr_gem, bo_gem); in drm_intel_gem_bo_map()
1463 if (!bo_gem->mem_virtual) { in drm_intel_gem_bo_map()
1467 bo_gem->gem_handle, bo_gem->name, bo_gem->map_count); in drm_intel_gem_bo_map()
1470 mmap_arg.handle = bo_gem->gem_handle; in drm_intel_gem_bo_map()
1478 __FILE__, __LINE__, bo_gem->gem_handle, in drm_intel_gem_bo_map()
1479 bo_gem->name, strerror(errno)); in drm_intel_gem_bo_map()
1480 if (--bo_gem->map_count == 0) in drm_intel_gem_bo_map()
1481 drm_intel_gem_bo_close_vma(bufmgr_gem, bo_gem); in drm_intel_gem_bo_map()
1486 bo_gem->mem_virtual = (void *)(uintptr_t) mmap_arg.addr_ptr; in drm_intel_gem_bo_map()
1488 DBG("bo_map: %d (%s) -> %p\n", bo_gem->gem_handle, bo_gem->name, in drm_intel_gem_bo_map()
1489 bo_gem->mem_virtual); in drm_intel_gem_bo_map()
1490 bo->virtual = bo_gem->mem_virtual; in drm_intel_gem_bo_map()
1493 set_domain.handle = bo_gem->gem_handle; in drm_intel_gem_bo_map()
1504 __FILE__, __LINE__, bo_gem->gem_handle, in drm_intel_gem_bo_map()
1509 bo_gem->mapped_cpu_write = true; in drm_intel_gem_bo_map()
1512 VG(VALGRIND_MAKE_MEM_DEFINED(bo_gem->mem_virtual, bo->size)); in drm_intel_gem_bo_map()
1522 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in map_gtt() local
1525 if (bo_gem->is_userptr) in map_gtt()
1528 if (bo_gem->map_count++ == 0) in map_gtt()
1529 drm_intel_gem_bo_open_vma(bufmgr_gem, bo_gem); in map_gtt()
1532 if (bo_gem->gtt_virtual == NULL) { in map_gtt()
1536 bo_gem->gem_handle, bo_gem->name, bo_gem->map_count); in map_gtt()
1539 mmap_arg.handle = bo_gem->gem_handle; 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_gem->gtt_virtual = drm_mmap(0, bo->size, PROT_READ | PROT_WRITE, in map_gtt()
1560 if (bo_gem->gtt_virtual == MAP_FAILED) { in map_gtt()
1561 bo_gem->gtt_virtual = NULL; in map_gtt()
1565 bo_gem->gem_handle, bo_gem->name, in map_gtt()
1567 if (--bo_gem->map_count == 0) in map_gtt()
1568 drm_intel_gem_bo_close_vma(bufmgr_gem, bo_gem); in map_gtt()
1573 bo->virtual = bo_gem->gtt_virtual; in map_gtt()
1575 DBG("bo_map_gtt: %d (%s) -> %p\n", bo_gem->gem_handle, bo_gem->name, in map_gtt()
1576 bo_gem->gtt_virtual); in map_gtt()
1585 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_map_gtt() local
1607 set_domain.handle = bo_gem->gem_handle; in drm_intel_gem_bo_map_gtt()
1615 __FILE__, __LINE__, bo_gem->gem_handle, in drm_intel_gem_bo_map_gtt()
1620 VG(VALGRIND_MAKE_MEM_DEFINED(bo_gem->gtt_virtual, bo->size)); in drm_intel_gem_bo_map_gtt()
1645 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_map_unsynchronized() local
1664 VG(VALGRIND_MAKE_MEM_DEFINED(bo_gem->gtt_virtual, bo->size)); in drm_intel_gem_bo_map_unsynchronized()
1675 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_unmap() local
1681 if (bo_gem->is_userptr) in drm_intel_gem_bo_unmap()
1688 if (bo_gem->map_count <= 0) { in drm_intel_gem_bo_unmap()
1697 if (bo_gem->mapped_cpu_write) { in drm_intel_gem_bo_unmap()
1706 sw_finish.handle = bo_gem->gem_handle; in drm_intel_gem_bo_unmap()
1712 bo_gem->mapped_cpu_write = false; in drm_intel_gem_bo_unmap()
1719 if (--bo_gem->map_count == 0) { in drm_intel_gem_bo_unmap()
1720 drm_intel_gem_bo_close_vma(bufmgr_gem, bo_gem); in drm_intel_gem_bo_unmap()
1740 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_subdata() local
1744 if (bo_gem->is_userptr) in drm_intel_gem_bo_subdata()
1748 pwrite.handle = bo_gem->gem_handle; in drm_intel_gem_bo_subdata()
1758 __FILE__, __LINE__, bo_gem->gem_handle, (int)offset, in drm_intel_gem_bo_subdata()
1795 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_get_subdata() local
1799 if (bo_gem->is_userptr) in drm_intel_gem_bo_get_subdata()
1803 pread.handle = bo_gem->gem_handle; in drm_intel_gem_bo_get_subdata()
1813 __FILE__, __LINE__, bo_gem->gem_handle, (int)offset, in drm_intel_gem_bo_get_subdata()
1858 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_wait() local
1874 wait.bo_handle = bo_gem->gem_handle; in drm_intel_gem_bo_wait()
1894 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_start_gtt_access() local
1899 set_domain.handle = bo_gem->gem_handle; in drm_intel_gem_bo_start_gtt_access()
1907 __FILE__, __LINE__, bo_gem->gem_handle, in drm_intel_gem_bo_start_gtt_access()
1930 drm_intel_bo_gem *bo_gem; in drm_intel_bufmgr_gem_destroy() local
1933 bo_gem = DRMLISTENTRY(drm_intel_bo_gem, in drm_intel_bufmgr_gem_destroy()
1935 DRMLISTDEL(&bo_gem->head); in drm_intel_bufmgr_gem_destroy()
1937 drm_intel_gem_bo_free(&bo_gem->bo); in drm_intel_bufmgr_gem_destroy()
1972 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in do_bo_emit_reloc() local
1976 if (bo_gem->has_error) in do_bo_emit_reloc()
1980 bo_gem->has_error = true; in do_bo_emit_reloc()
1993 if (bo_gem->relocs == NULL && drm_intel_setup_reloc_list(bo)) in do_bo_emit_reloc()
1997 assert(bo_gem->reloc_count < bufmgr_gem->max_relocs); in do_bo_emit_reloc()
2014 assert(!bo_gem->used_as_reloc_target); in do_bo_emit_reloc()
2015 if (target_bo_gem != bo_gem) { in do_bo_emit_reloc()
2017 bo_gem->reloc_tree_size += target_bo_gem->reloc_tree_size; in do_bo_emit_reloc()
2018 bo_gem->reloc_tree_fences += target_bo_gem->reloc_tree_fences; in do_bo_emit_reloc()
2021 bo_gem->reloc_target_info[bo_gem->reloc_count].bo = target_bo; in do_bo_emit_reloc()
2025 bo_gem->reloc_target_info[bo_gem->reloc_count].flags = in do_bo_emit_reloc()
2028 bo_gem->reloc_target_info[bo_gem->reloc_count].flags = 0; in do_bo_emit_reloc()
2030 bo_gem->relocs[bo_gem->reloc_count].offset = offset; in do_bo_emit_reloc()
2031 bo_gem->relocs[bo_gem->reloc_count].delta = target_offset; in do_bo_emit_reloc()
2032 bo_gem->relocs[bo_gem->reloc_count].target_handle = in do_bo_emit_reloc()
2034 bo_gem->relocs[bo_gem->reloc_count].read_domains = read_domains; in do_bo_emit_reloc()
2035 bo_gem->relocs[bo_gem->reloc_count].write_domain = write_domain; in do_bo_emit_reloc()
2036 bo_gem->relocs[bo_gem->reloc_count].presumed_offset = target_bo->offset64; in do_bo_emit_reloc()
2037 bo_gem->reloc_count++; in do_bo_emit_reloc()
2045 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_use_48b_address_range() local
2048 bo_gem->kflags |= EXEC_OBJECT_SUPPORTS_48B_ADDRESS; in drm_intel_gem_bo_use_48b_address_range()
2050 bo_gem->kflags &= ~EXEC_OBJECT_SUPPORTS_48B_ADDRESS; in drm_intel_gem_bo_use_48b_address_range()
2057 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_add_softpin_target() local
2059 if (bo_gem->has_error) in drm_intel_gem_bo_add_softpin_target()
2063 bo_gem->has_error = true; in drm_intel_gem_bo_add_softpin_target()
2069 if (target_bo_gem == bo_gem) in drm_intel_gem_bo_add_softpin_target()
2072 if (bo_gem->softpin_target_count == bo_gem->softpin_target_size) { in drm_intel_gem_bo_add_softpin_target()
2073 int new_size = bo_gem->softpin_target_size * 2; in drm_intel_gem_bo_add_softpin_target()
2077 bo_gem->softpin_target = realloc(bo_gem->softpin_target, new_size * in drm_intel_gem_bo_add_softpin_target()
2079 if (!bo_gem->softpin_target) in drm_intel_gem_bo_add_softpin_target()
2082 bo_gem->softpin_target_size = new_size; in drm_intel_gem_bo_add_softpin_target()
2084 bo_gem->softpin_target[bo_gem->softpin_target_count] = target_bo; in drm_intel_gem_bo_add_softpin_target()
2086 bo_gem->softpin_target_count++; in drm_intel_gem_bo_add_softpin_target()
2120 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_get_reloc_count() local
2122 return bo_gem->reloc_count; in drm_intel_gem_bo_get_reloc_count()
2144 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_clear_relocs() local
2150 assert(bo_gem->reloc_count >= start); in drm_intel_gem_bo_clear_relocs()
2155 for (i = start; i < bo_gem->reloc_count; i++) { in drm_intel_gem_bo_clear_relocs()
2156 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()
2158 bo_gem->reloc_tree_fences -= target_bo_gem->reloc_tree_fences; in drm_intel_gem_bo_clear_relocs()
2163 bo_gem->reloc_count = start; in drm_intel_gem_bo_clear_relocs()
2165 for (i = 0; i < bo_gem->softpin_target_count; i++) { in drm_intel_gem_bo_clear_relocs()
2166 drm_intel_bo_gem *target_bo_gem = (drm_intel_bo_gem *) bo_gem->softpin_target[i]; in drm_intel_gem_bo_clear_relocs()
2169 bo_gem->softpin_target_count = 0; in drm_intel_gem_bo_clear_relocs()
2183 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_process_reloc() local
2186 if (bo_gem->relocs == NULL) in drm_intel_gem_bo_process_reloc()
2189 for (i = 0; i < bo_gem->reloc_count; i++) { in drm_intel_gem_bo_process_reloc()
2190 drm_intel_bo *target_bo = bo_gem->reloc_target_info[i].bo; in drm_intel_gem_bo_process_reloc()
2208 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *)bo; in drm_intel_gem_bo_process_reloc2() local
2211 if (bo_gem->relocs == NULL && bo_gem->softpin_target == NULL) in drm_intel_gem_bo_process_reloc2()
2214 for (i = 0; i < bo_gem->reloc_count; i++) { in drm_intel_gem_bo_process_reloc2()
2215 drm_intel_bo *target_bo = bo_gem->reloc_target_info[i].bo; in drm_intel_gem_bo_process_reloc2()
2226 need_fence = (bo_gem->reloc_target_info[i].flags & in drm_intel_gem_bo_process_reloc2()
2233 for (i = 0; i < bo_gem->softpin_target_count; i++) { in drm_intel_gem_bo_process_reloc2()
2234 drm_intel_bo *target_bo = bo_gem->softpin_target[i]; in drm_intel_gem_bo_process_reloc2()
2253 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_update_buffer_offsets() local
2258 bo_gem->gem_handle, bo_gem->name, in drm_intel_update_buffer_offsets()
2276 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *)bo; in drm_intel_update_buffer_offsets2() local
2283 assert(!(bo_gem->kflags & EXEC_OBJECT_PINNED)); in drm_intel_update_buffer_offsets2()
2285 bo_gem->gem_handle, bo_gem->name, in drm_intel_update_buffer_offsets2()
2357 drm_intel_bo_gem *bo_gem = to_bo_gem(bufmgr_gem->exec_bos[i]); in drm_intel_gem_bo_exec() local
2359 bo_gem->idle = false; in drm_intel_gem_bo_exec()
2362 bo_gem->validate_index = -1; in drm_intel_gem_bo_exec()
2466 drm_intel_bo_gem *bo_gem = to_bo_gem(bufmgr_gem->exec_bos[i]); in do_exec2() local
2468 bo_gem->idle = false; in do_exec2()
2471 bo_gem->validate_index = -1; in do_exec2()
2520 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_pin() local
2525 pin.handle = bo_gem->gem_handle; in drm_intel_gem_bo_pin()
2543 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_unpin() local
2548 unpin.handle = bo_gem->gem_handle; in drm_intel_gem_bo_unpin()
2563 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_set_tiling_internal() local
2567 if (bo_gem->global_name == 0 && in drm_intel_gem_bo_set_tiling_internal()
2568 tiling_mode == bo_gem->tiling_mode && in drm_intel_gem_bo_set_tiling_internal()
2569 stride == bo_gem->stride) in drm_intel_gem_bo_set_tiling_internal()
2578 set_tiling.handle = bo_gem->gem_handle; in drm_intel_gem_bo_set_tiling_internal()
2589 bo_gem->tiling_mode = set_tiling.tiling_mode; in drm_intel_gem_bo_set_tiling_internal()
2590 bo_gem->swizzle_mode = set_tiling.swizzle_mode; in drm_intel_gem_bo_set_tiling_internal()
2591 bo_gem->stride = set_tiling.stride; in drm_intel_gem_bo_set_tiling_internal()
2600 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_set_tiling() local
2606 if (bo_gem->is_userptr) in drm_intel_gem_bo_set_tiling()
2617 drm_intel_bo_gem_set_in_aperture_size(bufmgr_gem, bo_gem, 0); in drm_intel_gem_bo_set_tiling()
2619 *tiling_mode = bo_gem->tiling_mode; in drm_intel_gem_bo_set_tiling()
2627 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_get_tiling() local
2629 *tiling_mode = bo_gem->tiling_mode; in drm_intel_gem_bo_get_tiling()
2630 *swizzle_mode = bo_gem->swizzle_mode; in drm_intel_gem_bo_get_tiling()
2637 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_set_softpin_offset() local
2641 bo_gem->kflags |= EXEC_OBJECT_PINNED; in drm_intel_gem_bo_set_softpin_offset()
2652 drm_intel_bo_gem *bo_gem; in drm_intel_bo_gem_create_from_prime() local
2668 &handle, sizeof(handle), bo_gem); in drm_intel_bo_gem_create_from_prime()
2669 if (bo_gem) { in drm_intel_bo_gem_create_from_prime()
2670 drm_intel_gem_bo_reference(&bo_gem->bo); in drm_intel_bo_gem_create_from_prime()
2674 bo_gem = calloc(1, sizeof(*bo_gem)); in drm_intel_bo_gem_create_from_prime()
2675 if (!bo_gem) in drm_intel_bo_gem_create_from_prime()
2678 atomic_set(&bo_gem->refcount, 1); in drm_intel_bo_gem_create_from_prime()
2679 DRMINITLISTHEAD(&bo_gem->vma_list); in drm_intel_bo_gem_create_from_prime()
2688 bo_gem->bo.size = ret; in drm_intel_bo_gem_create_from_prime()
2690 bo_gem->bo.size = size; in drm_intel_bo_gem_create_from_prime()
2692 bo_gem->bo.handle = handle; in drm_intel_bo_gem_create_from_prime()
2693 bo_gem->bo.bufmgr = bufmgr; in drm_intel_bo_gem_create_from_prime()
2695 bo_gem->gem_handle = handle; in drm_intel_bo_gem_create_from_prime()
2697 gem_handle, sizeof(bo_gem->gem_handle), bo_gem); in drm_intel_bo_gem_create_from_prime()
2699 bo_gem->name = "prime"; in drm_intel_bo_gem_create_from_prime()
2700 bo_gem->validate_index = -1; in drm_intel_bo_gem_create_from_prime()
2701 bo_gem->reloc_tree_fences = 0; in drm_intel_bo_gem_create_from_prime()
2702 bo_gem->used_as_reloc_target = false; in drm_intel_bo_gem_create_from_prime()
2703 bo_gem->has_error = false; in drm_intel_bo_gem_create_from_prime()
2704 bo_gem->reusable = false; in drm_intel_bo_gem_create_from_prime()
2707 &bo_gem->tiling_mode, &bo_gem->swizzle_mode); in drm_intel_bo_gem_create_from_prime()
2712 drm_intel_bo_gem_set_in_aperture_size(bufmgr_gem, bo_gem, 0); in drm_intel_bo_gem_create_from_prime()
2716 return &bo_gem->bo; in drm_intel_bo_gem_create_from_prime()
2719 drm_intel_gem_bo_free(&bo_gem->bo); in drm_intel_bo_gem_create_from_prime()
2728 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_bo_gem_export_to_prime() local
2730 if (drmPrimeHandleToFD(bufmgr_gem->fd, bo_gem->gem_handle, in drm_intel_bo_gem_export_to_prime()
2734 bo_gem->reusable = false; in drm_intel_bo_gem_export_to_prime()
2743 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_flink() local
2745 if (!bo_gem->global_name) { in drm_intel_gem_bo_flink()
2749 flink.handle = bo_gem->gem_handle; in drm_intel_gem_bo_flink()
2754 if (!bo_gem->global_name) { in drm_intel_gem_bo_flink()
2755 bo_gem->global_name = flink.name; in drm_intel_gem_bo_flink()
2756 bo_gem->reusable = false; in drm_intel_gem_bo_flink()
2759 global_name, sizeof(bo_gem->global_name), in drm_intel_gem_bo_flink()
2760 bo_gem); in drm_intel_gem_bo_flink()
2765 *name = bo_gem->global_name; in drm_intel_gem_bo_flink()
2801 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_disable_implicit_sync() local
2803 bo_gem->kflags |= EXEC_OBJECT_ASYNC; in drm_intel_gem_bo_disable_implicit_sync()
2820 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_enable_implicit_sync() local
2822 bo_gem->kflags &= ~EXEC_OBJECT_ASYNC; in drm_intel_gem_bo_enable_implicit_sync()
2860 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_get_aperture_space() local
2864 if (bo == NULL || bo_gem->included_in_check_aperture) in drm_intel_gem_bo_get_aperture_space()
2868 bo_gem->included_in_check_aperture = true; in drm_intel_gem_bo_get_aperture_space()
2870 for (i = 0; i < bo_gem->reloc_count; i++) in drm_intel_gem_bo_get_aperture_space()
2872 drm_intel_gem_bo_get_aperture_space(bo_gem-> in drm_intel_gem_bo_get_aperture_space()
2893 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo_array[i]; in drm_intel_gem_total_fences() local
2895 if (bo_gem == NULL) in drm_intel_gem_total_fences()
2898 total += bo_gem->reloc_tree_fences; in drm_intel_gem_total_fences()
2910 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_clear_aperture_space_flag() local
2913 if (bo == NULL || !bo_gem->included_in_check_aperture) in drm_intel_gem_bo_clear_aperture_space_flag()
2916 bo_gem->included_in_check_aperture = false; in drm_intel_gem_bo_clear_aperture_space_flag()
2918 for (i = 0; i < bo_gem->reloc_count; i++) in drm_intel_gem_bo_clear_aperture_space_flag()
2919 drm_intel_gem_bo_clear_aperture_space_flag(bo_gem-> in drm_intel_gem_bo_clear_aperture_space_flag()
2934 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo_array[i]; in drm_intel_gem_estimate_batch_space() local
2935 if (bo_gem != NULL) in drm_intel_gem_estimate_batch_space()
2936 total += bo_gem->reloc_tree_size; in drm_intel_gem_estimate_batch_space()
2964 drm_intel_bo_gem *bo_gem = in drm_intel_gem_compute_batch_space() local
2966 bo_gem->reloc_tree_size = total; in drm_intel_gem_compute_batch_space()
3031 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_disable_reuse() local
3033 bo_gem->reusable = false; in drm_intel_gem_bo_disable_reuse()
3040 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_is_reusable() local
3042 return bo_gem->reusable; in drm_intel_gem_bo_is_reusable()
3048 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in _drm_intel_gem_bo_references() local
3051 for (i = 0; i < bo_gem->reloc_count; i++) { in _drm_intel_gem_bo_references()
3052 if (bo_gem->reloc_target_info[i].bo == target_bo) in _drm_intel_gem_bo_references()
3054 if (bo == bo_gem->reloc_target_info[i].bo) in _drm_intel_gem_bo_references()
3056 if (_drm_intel_gem_bo_references(bo_gem->reloc_target_info[i].bo, in _drm_intel_gem_bo_references()
3061 for (i = 0; i< bo_gem->softpin_target_count; i++) { in _drm_intel_gem_bo_references()
3062 if (bo_gem->softpin_target[i] == target_bo) in _drm_intel_gem_bo_references()
3064 if (_drm_intel_gem_bo_references(bo_gem->softpin_target[i], target_bo)) in _drm_intel_gem_bo_references()
3470 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_map__gtt() local
3472 if (bo_gem->gtt_virtual) in drm_intel_gem_bo_map__gtt()
3473 return bo_gem->gtt_virtual; in drm_intel_gem_bo_map__gtt()
3475 if (bo_gem->is_userptr) in drm_intel_gem_bo_map__gtt()
3479 if (bo_gem->gtt_virtual == NULL) { in drm_intel_gem_bo_map__gtt()
3484 bo_gem->gem_handle, bo_gem->name, bo_gem->map_count); in drm_intel_gem_bo_map__gtt()
3486 if (bo_gem->map_count++ == 0) in drm_intel_gem_bo_map__gtt()
3487 drm_intel_gem_bo_open_vma(bufmgr_gem, bo_gem); in drm_intel_gem_bo_map__gtt()
3490 mmap_arg.handle = bo_gem->gem_handle; in drm_intel_gem_bo_map__gtt()
3503 if (--bo_gem->map_count == 0) in drm_intel_gem_bo_map__gtt()
3504 drm_intel_gem_bo_close_vma(bufmgr_gem, bo_gem); in drm_intel_gem_bo_map__gtt()
3508 bo_gem->gtt_virtual = ptr; in drm_intel_gem_bo_map__gtt()
3512 return bo_gem->gtt_virtual; in drm_intel_gem_bo_map__gtt()
3518 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_map__cpu() local
3520 if (bo_gem->mem_virtual) in drm_intel_gem_bo_map__cpu()
3521 return bo_gem->mem_virtual; in drm_intel_gem_bo_map__cpu()
3523 if (bo_gem->is_userptr) { in drm_intel_gem_bo_map__cpu()
3525 return bo_gem->user_virtual; in drm_intel_gem_bo_map__cpu()
3529 if (!bo_gem->mem_virtual) { in drm_intel_gem_bo_map__cpu()
3532 if (bo_gem->map_count++ == 0) in drm_intel_gem_bo_map__cpu()
3533 drm_intel_gem_bo_open_vma(bufmgr_gem, bo_gem); in drm_intel_gem_bo_map__cpu()
3536 bo_gem->gem_handle, bo_gem->name, bo_gem->map_count); in drm_intel_gem_bo_map__cpu()
3539 mmap_arg.handle = bo_gem->gem_handle; in drm_intel_gem_bo_map__cpu()
3545 __FILE__, __LINE__, bo_gem->gem_handle, in drm_intel_gem_bo_map__cpu()
3546 bo_gem->name, strerror(errno)); in drm_intel_gem_bo_map__cpu()
3547 if (--bo_gem->map_count == 0) in drm_intel_gem_bo_map__cpu()
3548 drm_intel_gem_bo_close_vma(bufmgr_gem, bo_gem); in drm_intel_gem_bo_map__cpu()
3551 bo_gem->mem_virtual = (void *)(uintptr_t) mmap_arg.addr_ptr; in drm_intel_gem_bo_map__cpu()
3556 return bo_gem->mem_virtual; in drm_intel_gem_bo_map__cpu()
3562 drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo; in drm_intel_gem_bo_map__wc() local
3564 if (bo_gem->wc_virtual) in drm_intel_gem_bo_map__wc()
3565 return bo_gem->wc_virtual; in drm_intel_gem_bo_map__wc()
3567 if (bo_gem->is_userptr) in drm_intel_gem_bo_map__wc()
3571 if (!bo_gem->wc_virtual) { in drm_intel_gem_bo_map__wc()
3574 if (bo_gem->map_count++ == 0) in drm_intel_gem_bo_map__wc()
3575 drm_intel_gem_bo_open_vma(bufmgr_gem, bo_gem); in drm_intel_gem_bo_map__wc()
3578 bo_gem->gem_handle, bo_gem->name, bo_gem->map_count); in drm_intel_gem_bo_map__wc()
3581 mmap_arg.handle = bo_gem->gem_handle; in drm_intel_gem_bo_map__wc()
3588 __FILE__, __LINE__, bo_gem->gem_handle, in drm_intel_gem_bo_map__wc()
3589 bo_gem->name, strerror(errno)); in drm_intel_gem_bo_map__wc()
3590 if (--bo_gem->map_count == 0) in drm_intel_gem_bo_map__wc()
3591 drm_intel_gem_bo_close_vma(bufmgr_gem, bo_gem); in drm_intel_gem_bo_map__wc()
3594 bo_gem->wc_virtual = (void *)(uintptr_t) mmap_arg.addr_ptr; in drm_intel_gem_bo_map__wc()
3599 return bo_gem->wc_virtual; in drm_intel_gem_bo_map__wc()