Lines Matching defs:bo_fake
421 drm_intel_bo_fake *bo_fake = (drm_intel_bo_fake *) bo;
425 unsigned int align_log2 = ffs(bo_fake->alignment) - 1;
431 sz = (bo->size + bo_fake->alignment - 1) & ~(bo_fake->alignment - 1);
448 bo_fake->block = block;
459 drm_intel_bo_fake *bo_fake;
466 bo_fake = (drm_intel_bo_fake *) block->bo;
468 if (bo_fake->flags & (BM_PINNED | BM_NO_BACKING_STORE))
471 if (!skip_dirty_copy && (bo_fake->card_dirty == 1)) {
472 memcpy(bo_fake->backing_store, block->virtual, block->bo->size);
473 bo_fake->card_dirty = 0;
474 bo_fake->dirty = 1;
495 drm_intel_bo_fake *bo_fake = (drm_intel_bo_fake *) bo;
496 assert(!bo_fake->backing_store);
497 assert(!(bo_fake->flags & (BM_PINNED | BM_NO_BACKING_STORE)));
499 bo_fake->backing_store = malloc(bo->size);
501 DBG("alloc_backing - buf %d %p %lu\n", bo_fake->id,
502 bo_fake->backing_store, bo->size);
503 assert(bo_fake->backing_store);
509 drm_intel_bo_fake *bo_fake = (drm_intel_bo_fake *) bo;
511 if (bo_fake->backing_store) {
512 assert(!(bo_fake->flags & (BM_PINNED | BM_NO_BACKING_STORE)));
513 free(bo_fake->backing_store);
514 bo_fake->backing_store = NULL;
523 drm_intel_bo_fake *bo_fake = (drm_intel_bo_fake *) bo;
525 if (bo_fake->flags & BM_NO_BACKING_STORE
526 && bo_fake->invalidate_cb != NULL)
527 bo_fake->invalidate_cb(bo, bo_fake->invalidate_ptr);
529 assert(!(bo_fake->flags & BM_PINNED));
531 DBG("set_dirty - buf %d\n", bo_fake->id);
532 bo_fake->dirty = 1;
543 drm_intel_bo_fake *bo_fake = (drm_intel_bo_fake *) block->bo;
545 if (bo_fake != NULL && (bo_fake->flags & BM_NO_FENCE_SUBDATA))
552 set_dirty(&bo_fake->bo);
553 bo_fake->block = NULL;
570 drm_intel_bo_fake *bo_fake = (drm_intel_bo_fake *) block->bo;
572 if (bo_fake && (bo_fake->flags & BM_NO_FENCE_SUBDATA))
575 set_dirty(&bo_fake->bo);
576 bo_fake->block = NULL;
658 drm_intel_bo_fake *bo_fake = (drm_intel_bo_fake *) bo;
660 assert(bo_fake->block == NULL);
744 drm_intel_bo_fake *bo_fake = (drm_intel_bo_fake *) bo;
746 if (bo_fake->block == NULL || !bo_fake->block->fenced)
749 _fence_wait_internal(bufmgr_fake, bo_fake->block->fence);
805 drm_intel_bo_fake *bo_fake;
811 bo_fake = calloc(1, sizeof(*bo_fake));
812 if (!bo_fake)
815 bo_fake->bo.size = size;
816 bo_fake->bo.offset = -1;
817 bo_fake->bo.virtual = NULL;
818 bo_fake->bo.bufmgr = bufmgr;
819 bo_fake->refcount = 1;
825 bo_fake->alignment = alignment;
826 bo_fake->id = ++bufmgr_fake->buf_nr;
827 bo_fake->name = name;
828 bo_fake->flags = 0;
829 bo_fake->is_static = 0;
831 DBG("drm_bo_alloc: (buf %d: %s, %lu kb)\n", bo_fake->id, bo_fake->name,
832 bo_fake->bo.size / 1024);
834 return &bo_fake->bo;
870 drm_intel_bo_fake *bo_fake;
876 bo_fake = calloc(1, sizeof(*bo_fake));
877 if (!bo_fake)
880 bo_fake->bo.size = size;
881 bo_fake->bo.offset = offset;
882 bo_fake->bo.virtual = virtual;
883 bo_fake->bo.bufmgr = bufmgr;
884 bo_fake->refcount = 1;
885 bo_fake->id = ++bufmgr_fake->buf_nr;
886 bo_fake->name = name;
887 bo_fake->flags = BM_PINNED;
888 bo_fake->is_static = 1;
890 DBG("drm_bo_alloc_static: (buf %d: %s, %lu kb)\n", bo_fake->id,
891 bo_fake->name, bo_fake->bo.size / 1024);
893 return &bo_fake->bo;
901 drm_intel_bo_fake *bo_fake = (drm_intel_bo_fake *) bo;
904 bo_fake->refcount++;
911 drm_intel_bo_fake *bo_fake = (drm_intel_bo_fake *) bo;
913 bo_fake->refcount++;
921 drm_intel_bo_fake *bo_fake = (drm_intel_bo_fake *) bo;
924 if (--bo_fake->refcount == 0) {
925 assert(bo_fake->map_count == 0);
927 if (bo_fake->block)
928 free_block(bufmgr_fake, bo_fake->block, 1);
931 for (i = 0; i < bo_fake->nr_relocs; i++)
932 drm_intel_fake_bo_unreference_locked(bo_fake->relocs[i].
935 DBG("drm_bo_unreference: free buf %d %s\n", bo_fake->id,
936 bo_fake->name);
938 free(bo_fake->relocs);
966 drm_intel_bo_fake *bo_fake = (drm_intel_bo_fake *) bo;
970 if (bo_fake->backing_store)
973 bo_fake->flags |= BM_NO_BACKING_STORE;
975 DBG("disable_backing_store set buf %d dirty\n", bo_fake->id);
976 bo_fake->dirty = 1;
977 bo_fake->invalidate_cb = invalidate_cb;
978 bo_fake->invalidate_ptr = ptr;
999 drm_intel_bo_fake *bo_fake = (drm_intel_bo_fake *) bo;
1002 if (bo_fake->is_static) {
1003 if (bo_fake->card_dirty) {
1005 bo_fake->card_dirty = 0;
1014 if (bo_fake->map_count++ != 0)
1018 DBG("drm_bo_map: (buf %d: %s, %lu kb)\n", bo_fake->id,
1019 bo_fake->name, bo_fake->bo.size / 1024);
1024 } else if (bo_fake->flags & (BM_NO_BACKING_STORE | BM_PINNED)) {
1026 if (!bo_fake->block && !evict_and_alloc_block(bo)) {
1031 assert(bo_fake->block);
1032 bo_fake->dirty = 0;
1034 if (!(bo_fake->flags & BM_NO_FENCE_SUBDATA) &&
1035 bo_fake->block->fenced) {
1040 bo->virtual = bo_fake->block->virtual;
1046 if (bo_fake->backing_store == 0)
1049 if ((bo_fake->card_dirty == 1) && bo_fake->block) {
1050 if (bo_fake->block->fenced)
1054 memcpy(bo_fake->backing_store,
1055 bo_fake->block->virtual,
1056 bo_fake->block->bo->size);
1057 bo_fake->card_dirty = 0;
1060 bo->virtual = bo_fake->backing_store;
1086 drm_intel_bo_fake *bo_fake = (drm_intel_bo_fake *) bo;
1089 if (bo_fake->is_static)
1092 assert(bo_fake->map_count != 0);
1093 if (--bo_fake->map_count != 0)
1096 DBG("drm_bo_unmap: (buf %d: %s, %lu kb)\n", bo_fake->id, bo_fake->name,
1097 bo_fake->bo.size / 1024);
1143 drm_intel_bo_fake *bo_fake = (drm_intel_bo_fake *) block->bo;
1147 bo_fake->block = NULL;
1148 bo_fake->validated = 0;
1149 if (!(bo_fake->flags & BM_NO_BACKING_STORE))
1150 bo_fake->dirty = 1;
1159 drm_intel_bo_fake *bo_fake = (drm_intel_bo_fake *) bo;
1163 DBG("drm_bo_validate: (buf %d: %s, %lu kb)\n", bo_fake->id,
1164 bo_fake->name, bo_fake->bo.size / 1024);
1170 assert(bo_fake->map_count == 0);
1172 if (bo_fake->is_static) {
1179 if (!bo_fake->block && !evict_and_alloc_block(bo)) {
1181 DBG("Failed to validate buf %d:%s\n", bo_fake->id,
1182 bo_fake->name);
1186 assert(bo_fake->block);
1187 assert(bo_fake->block->bo == &bo_fake->bo);
1189 bo->offset = bo_fake->block->mem->ofs;
1192 if (bo_fake->dirty) {
1193 DBG("Upload dirty buf %d:%s, sz %lu offset 0x%x\n", bo_fake->id,
1194 bo_fake->name, bo->size, bo_fake->block->mem->ofs);
1196 assert(!(bo_fake->flags & (BM_NO_BACKING_STORE | BM_PINNED)));
1207 if (bo_fake->backing_store)
1208 memcpy(bo_fake->block->virtual, bo_fake->backing_store,
1211 memset(bo_fake->block->virtual, 0, bo->size);
1213 bo_fake->dirty = 0;
1216 bo_fake->block->fenced = 0;
1217 bo_fake->block->on_hardware = 1;
1218 DRMLISTDEL(bo_fake->block);
1219 DRMLISTADDTAIL(bo_fake->block, &bufmgr_fake->on_hardware);
1221 bo_fake->validated = 1;
1257 drm_intel_bo_fake *bo_fake = (drm_intel_bo_fake *) bo;
1266 if (bo_fake->relocs == NULL) {
1267 bo_fake->relocs =
1271 r = &bo_fake->relocs[bo_fake->nr_relocs++];
1273 assert(bo_fake->nr_relocs <= MAX_RELOCS);
1278 bo_fake->child_size +=
1280 bo_fake->child_size += target_fake->child_size;
1293 for (i = 0; i < bo_fake->nr_relocs - 1; i++) {
1294 struct fake_buffer_reloc *r2 = &bo_fake->relocs[i];
1312 drm_intel_bo_fake *bo_fake = (drm_intel_bo_fake *) bo;
1315 for (i = 0; i < bo_fake->nr_relocs; i++) {
1316 struct fake_buffer_reloc *r = &bo_fake->relocs[i];
1333 drm_intel_bo_fake *bo_fake = (drm_intel_bo_fake *) bo;
1336 assert(bo_fake->map_count == 0);
1338 for (i = 0; i < bo_fake->nr_relocs; i++) {
1339 struct fake_buffer_reloc *r = &bo_fake->relocs[i];
1372 if (bo_fake->write_domain != 0) {
1373 if (!(bo_fake->flags & (BM_NO_BACKING_STORE | BM_PINNED))) {
1374 if (bo_fake->backing_store == 0)
1377 bo_fake->card_dirty = 1;
1389 drm_intel_bo_fake *bo_fake = (drm_intel_bo_fake *) bo;
1392 for (i = 0; i < bo_fake->nr_relocs; i++) {
1393 struct fake_buffer_reloc *r = &bo_fake->relocs[i];
1401 bo_fake->name, (uint32_t) bo->offset, r->offset,
1406 assert(bo_fake->map_count == 0);
1407 bo_fake->validated = 0;
1408 bo_fake->read_domains = 0;
1409 bo_fake->write_domain = 0;
1507 drm_intel_bo_fake *bo_fake = (drm_intel_bo_fake *) bo_array[i];
1509 if (bo_fake == NULL)
1512 if (!bo_fake->is_static)
1513 sz += ALIGN(bo_array[i]->size, bo_fake->alignment);
1514 sz += bo_fake->child_size;
1559 drm_intel_bo_fake *bo_fake = (drm_intel_bo_fake *) block->bo;
1564 bo_fake->block = NULL;